> For the complete documentation index, see [llms.txt](https://movile.gitbook.io/kiwi-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://movile.gitbook.io/kiwi-manual/sending-push-notifications.md).

# Sending Push Notifications

In order to send push notifications to your application, follow these steps for each platform. For more information on how to receive the push in the application please check the SDK documentation.

## Configuring Google Cloud Messaging (GCM) for Android

### On Google Developer Console

To enable GCM for your application first access the Google Developer Console page and select your Product.

Select the "APIs" section under "APIs & auth" from the left-hand navigation and make sure the Google Cloud Messaging for Android API is enabled.

![Activate GCM](https://4199087402-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH8mWb5CkYnZtIY9UbR%2F-LH8mbPMhzeuZf0VwhE_%2F-LH8mcotn_8ORnlAoRdA%2Fativar%20GCM.png?generation=1531320113400817\&alt=media)

Next you will have to create a new API Key to allow Kiwi to send Push notifications on your behalf.

Click "Credentials" under "APIs & auth" and select "Public API access" click "Create new Key".

![Create API KEY](https://4199087402-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH8mWb5CkYnZtIY9UbR%2F-LH8mbPMhzeuZf0VwhE_%2F-LH8mcoweZsiPZ3EY1Ki%2Fcreate_key.png?generation=1531320111781825\&alt=media)

Click the "Server key" button and leave the IPs whitelisting blank.

![Server Key](https://4199087402-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH8mWb5CkYnZtIY9UbR%2F-LH8mbPMhzeuZf0VwhE_%2F-LH8mcoyD5rOPfYm8pPy%2Fserver_key.png?generation=1531320111783282\&alt=media)

Copy the newly generated API Key.

![Generated Key](https://4199087402-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH8mWb5CkYnZtIY9UbR%2F-LH8mbPMhzeuZf0VwhE_%2F-LH8mcp-L8acSuivJWdd%2Fgenerated_key.png?generation=1531320111787516\&alt=media)

### On Kiwi

Access your application on [Admin](https://admin.kwsdk.io) interface, go to Settings and select *Push Configuration* and enter the API Key generated previously.

![Generated Key](https://4199087402-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH8mWb5CkYnZtIY9UbR%2F-LH8mbPMhzeuZf0VwhE_%2F-LH8mcp16EnImVSgUT-0%2Fkiwi_settings.png?generation=1531320111819286\&alt=media)

Click save and your done.

## Configuring Apple Push Notifications for iOS

To configure Kiwi to send Push Notifications through APNS you will need to provide the Certificate file provided by Apple Inc.

You can access your application on [Admin](https://admin.kwsdk.io) interface, go to Settings and select *Push Configuration*.

Select your Certificate file, and provide your Certificate password. You will be able to validate the information about the certificate provided after you save it.

## Sending Push Notifications

### For Android Devices

To send a push notification for an Android App, you can access the *User Engagement* area of the [Admin](https://admin.kwsdk.io) and choose Push Notifications.

Kiwi Android SDK will handle push messages for the applications, creating an alert notification based on sent parameters or just redirecting a payload to the app, without showing a notification. If a notification is created by the SDK, it will also take care of launching the desired intent with all extra parameters that were sent on the push message.

#### Configuring the application

Check our [Push Guide](http://movile.gitbooks.io/kiwi-sdk-android/content/push.html) for the Android SDK.

#### Parameters

**Publication Name:**

A user-friendly name that will identify this push on the user interface.

**Push Type:**

Indicates the type of action that will happen when a push message reaches the user's device. Currently the available options are:

* **SEND\_NOTIFICATION:** Creates a notification based on the parameters sent on the push message
* **SDK\_SILENT:** Reserved for Kiwi's internal use
* **APP\_SILENT:** Bypass all the data inside the push message to the application, by launching an intent that has all the extra parameters from the push message. No notification is created by Kiwi

**Push Action**

Intent filter that indicates what should be done when the user opens and clicks on the notification message (*SEND\_NOTIFICATION* push only) or what intent shoud be launched right after the push message reaches the device (*APP\_SILENT* push only).

The action must match the intent filter of an intent for which the application has a receiver or activity registered. If unsure check this with the development team.

**notificationOpenMethod**

Indicate how Kiwi will launch the intent specified on parameter Push Action. The available options are:

* START\_ACTIVITY: Starts an activity using the intent filter sent.&#x20;
* SEND\_BROADCAST: Sends a broadcast using the intent filter sent.

**ticker**

Message that is shown for a few seconds on the device's action bar right after the notification is created.

**alert**

Title of the notification that will show on the device.

**message**

Body of the notification. This will be the content of the push notification.

**Extra Parameters**

Json with information that should be transmitted to the listener for the intent filter determined by Push Action.

This is advanced feature and will only be used if the app requires special treatment of the push and implements it's own push receiver.

### For iOS Devices

To send a push notification for an iOS App, you can access the *User Engagement* area of the [Admin](https://admin.kwsdk.io) and choose Push Notifications.

#### Configuring the application

Check our [Push Guide](http://movile.gitbooks.io/kiwi-sdk-ios/content/Push-Notification.html) for the iOS SDK.

#### Push Parameters

**Publication Name:**

A user-friendly name that will identify this push on the user interface.

**Message:**

Message shown on the device notification center.

**Badge**

Number shown next to the notification icon, used to indicate number of messages

#### Alert Sound URL

Path of the sound file that will play when the push message is received

#### Extra parameters

Map of parameters that will be processed by the SDK or by the application. This is advanced feature and will only be used if the app requires special treatment of the push and implements it's own push types.
