## Handling FCM/GCM Push Notifications
Amazon Pinpoint campaigns can take one of three actions when a user taps a notification: Open your app, Go to a URL, or Open a deep link.
### Open your app
By specifying this action, you can open the app when the user taps on the notification.
**Adding a Receiver**
This receiver is no longer necessary and should be removed as of `com.amazonaws:aws-android-sdk-pinpoint:2.48.0`
The SDK provides `PinpointNotificationReceiver` which handles the notification to open your app. In order to use this action, you must register this receiver in your `AndroidManifest.xml` file. For example:
```xml
```
### Open a deep link
This action opens the app to a specified activity.
To specify a destination activity for deep links, the app must have set up deep linking. This setup requires an intent filter that registers a URL scheme the deep links will use. After the app creates an intent filter, the data provided by the intent determines the activity to render.
**Creating an Intent Filter**
Begin to set up deep linking by creating an intent filter in your `AndroidManifest.xml` file. For example:
```xml
```
The data element in the previous example registers a URL scheme, `pinpoint://`, as well as the host, `deeplink`. As a result, when given a URL in the form of `pinpoint://deeplink`, the manifest is prepared to execute the action.
**Handling the Intent**
Next, set up an intent handler to present the screen associated with the registered URL scheme and host. Intent data is retrieved in the onCreate() method, which then can use `Uri` data to create an activity. The following example shows an alert and tracks an event.
```java
public class DeepLinkActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().getAction() == Intent.ACTION_VIEW) {
Uri data = getIntent().getData();
if (data != null) {
// show an alert with the "custom" param
new AlertDialog.Builder(this)
.setTitle("An example of a Deeplink")
.setMessage("Found custom param: " +data.getQueryParameter("custom"))
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
}
}
}
```