> For the complete documentation index, see [llms.txt](https://help.smartico.ai/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.smartico.ai/welcome/products/crm-automation/communication-channels/how-to-create-a-push-resource.md).

# Push notifications

Push notifications are one of the very few offline but successful communication channels that could bring you very good conversion rates in no time. As a great channel, it is also a special one, since it is requiring special permission prior to being able to use it within campaigns.

### Prerequisites & Technical Setup

Before sending push notifications, you must complete the required technical setup. Refer to the following guides for detailed instructions:

* [Push Configurations](https://help.smartico.ai/welcome/technical-guides/front-end-integration/push-configurations) – Configure Firebase credentials and service worker deployment
* [Preparation for Web Push Notifications](https://help.smartico.ai/welcome/technical-guides/front-end-integration#id-3.-preparation-for-web-push-notifications) – Set up your website for push notifications
* [Registering Tokens for Push Notifications over API](https://help.smartico.ai/welcome/technical-guides/front-end-integration/ios-android-clients-integration-guide#id-4.-registering-tokens-for-push-notifications-over-api) – Register device tokens for native iOS and Android apps

### **How do push notifications work?**

In order to be able to send push notifications to the end user, we first need to get permission to do so. The permissions are requested in the web browser and as soon as the user gave them, Smartico will mark the user as reachable for the push notifications.

Every user can control push permission in their browser. The push status has 5 possible options:

* **Ask** - the user wasn’t asked yet to give permissions (default status)
* **Allowed** - in this case, the push message could be sent, the user gave permissions
* **Blocked** - in this case, the push messages are not allowed, the user blocked permissions
* **Browser Not Supported** – The user's browser does not support push notifications, or they are blocked at the system level.
* **Suspended** – The user initially granted push notification permissions but later logged in with a different account. In this case, the push permissions and token are reassigned to the newly logged-in user, and the previous user’s status is set to "Suspended."

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-d6d52cffa8d8a8d22e2f677c1626d95db909af57%2Fpush4.gif?alt=media" alt=""><figcaption><p>Gamification: Enabling push with pop-up trigger</p></figcaption></figure>

### Request permissions to send pushes

To start using our push services, you will need to build a Journey campaign that prompts the user to grant push permissions.

This campaign should address only users who have “Push status of the last session” set to “Ask”, this means that the browser is supporting push permissions and we didn’t ask this user yet. This way, we exclude those who have already granted permissions and those who have blocked them.

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-70c499bab6f7e8e49a023f192fbe314bd5b5bc40%2FPush1.gif?alt=media" alt=""><figcaption><p>BO: Setting campaign to request push permissions</p></figcaption></figure>

In the campaign, you need to show a pop-up to the end user, giving the proposition to subscribe to push notifications. This is usually referred to as “soft onboarding".

#### Soft onboarding popups

We have two pop-up templates dedicated to push permission soft onboarding.

**Simple pop-up for soft onboarding**

The template for this pop-up is called "Push permissions request (simple)".

<div data-with-frame="true"><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-fede5f1135c2cc83b4ab7a96757b5a99c4ce56b7%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure></div>

This pop-up is not modal; it appears from the top of the screen and does not block the user from interacting with your site. You can customize the image, text, and titles of the buttons.

**Popup with categories**

The template for this pop-up is called "Push permissions request (with categories)".

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-e66bcffef06d5cf35fc904bf44147e6db712ecf6%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

This template has the same customization options as the simple one, and you can also customize the categories users can subscribe to.

Each user's choice will be preserved in the JS Markers, which are available for segmentation.

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-c1ef6fe6e309588b47d069d2868637e86429259b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Later, you can build a campaign targeting users who have been granted permissions and subscribed to the specific category.

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-8e78b64a5fa60dcfb46904aeb3be8cf9b2e5f356%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Flow after the soft onboarding.

If the user clicks “Maybe later” at this point, you can ask him again later.

As soon as the user clicks “Subscribe” in the pop-up, we will trigger the browser's permission request. From this point, most of the users will make a choice that will lead either to “Allowed” or “Blocked”

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-1c8777bba9459005686659e611b31590fca76c3b%2Fpush3.gif?alt=media" alt=""><figcaption><p>BO: Full flow of the campaign, sending 1st push message as soon as user gives permission</p></figcaption></figure>

Once push permission is granted, you can attempt to execute a push as part of the flow.

### How to segment users that can be addressed with Push notifications

To send push notifications to users, you will need to first identify users who have granted permissions. Create a segment with "Core: push enabled, user has at least one device" = true.

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-26dd4696f95fafc37820969cf4312a81a8b92b41%2Fimage.png?alt=media" alt=""><figcaption><p>BO: Condition setup for enabled push</p></figcaption></figure>

### Push Delivery & Engagement Analytics

Smartico tracks push interactions throughout the notification lifecycle:

* **Sent:** Dispatched to the push gateway for all active player devices.
* **Delivered:** Confirmed received by the device (when supported by the push gateway).
* **Impression (Open):** Recorded when the player opens or taps the push notification banner. This automatically updates the player's **Push Last Open Date** property.
* **Click:** Recorded when the player taps an action button or redirect link within the push notification. This updates the player's **Core: Push Last Click Date** property, which can be used in campaign conversion rules and journey decision branches.
* **Failed:** Recorded if dispatch fails, along with the specific failure reason (e.g., no active tokens, invalid provider credentials).

Following that, the creation of a flow should be handled regularly. In case you have any further questions regarding this topic, please don\`t hesitate to contact your Customer Success Manager.

### **Managing push notification resources**

1. **Navigate to** the Marketing tab -> Assets -> Push
2. **Click** on the Create button

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-adab5c5edd158af585e2050b0d88b51771c3c39d%2Fimage.png?alt=media" alt=""><figcaption><p>BO: List of created Push messages</p></figcaption></figure>

1. Firstly, choose the Resource name (recommended to reflect the most possible usage).
2. Add Title, Message, optionally icon, attached image, or even buttons

{% hint style="warning" %}
**IMPORTANT:** Not all browsers support all fields. For further information, please check the internet resources for the specific browser capabilities.
{% endhint %}

<figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-e2a4517bd75eb0e6292b2e92f1fcb2faaa39cf81%2Fimage.png?alt=media" alt=""><figcaption><p>BO: Push General setup</p></figcaption></figure>

Use push notifications for communication of:

1. Promotions
2. Invitations
3. Announcements
4. Alerts

and many more!

### Push Resource Elements & Customization

When designing a push notification resource in Back-Office, you can configure the following elements:

* **Title & Body:** The main headline and message text, supporting dynamic personalization tags and multi-language translations.
* **Icon & Banner Images:** Upload a small notification icon (recommended size 128x128 px) and an expanded rich push banner image (recommended size 1024x512 px for supported mobile and desktop browsers).
* **Action URL / Deep Link:** Specify the destination URL or deep link to open when the user taps the push notification.
* **Interactive Action Buttons:** Add up to 3 action buttons (e.g., "Claim Bonus", "Play Now") with custom button labels and individual deep link destinations.
* **Test Send / Preview:** Send a test push notification to a specific test player directly from the Back-Office before activating your campaign.

{% hint style="info" %}
**Dynamic content:** Push notifications support content variations (multi-language and A/B variants), tags, and labels. For more information, check out our article [Content Variations](/welcome/products/crm-automation/communication-channels/content-variations.md).
{% endhint %}

### Target Devices

The 'Target devices' setting allows you to choose the type of app to receive the notifications:

* Native apps
* Web
* All

You can configure this setting in the Campaigns Flow Builder on the Push activity node. In a player's User Profile page, you can view the player's active push tokens and registered device platforms.

{% hint style="info" %}
**To ensure web Push notifications are received** on iOS 16.4 and later:

* Users should install the Web App to Home Screen (mandatory for full push support):
  * Web Push notifications work only if the user installs your website as a PWA (via "Add to Home Screen" in Safari).
  * The Web Push API does not work directly in Safari browser tabs; it requires installation on the Home Screen.

To receive push notifications on macOS Ventura 13.0 and later (Safari 16+):

* The website does not need to be installed as a PWA. Users can request permission directly inside Safari.
  {% endhint %}

<div><figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-86e8a8dfb48f322000a209bf1420f81567a2a979%2FScreenshot_6.png?alt=media" alt=""><figcaption><p>BO: Profile page - Target devices</p></figcaption></figure> <figure><img src="https://77049817-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfS5hl0PiysHtKAKMsQTe%2Fuploads%2Fgit-blob-bd96a07665b9e75661a1a2740a73f2f6a269682f%2FScreenshot_7.png?alt=media" alt=""><figcaption><p>BO: Campaign - Target devices</p></figcaption></figure></div>

### Frequently Asked Questions

**Why did my push campaign fail because no active tokens were found for the player?**

This error occurs when a campaign attempts to send a push notification to a player who does not have an active, valid push token. This happens if the player never granted browser push permissions, if permissions were revoked in the browser/device settings, if the token was invalidated, or if the player's active devices do not match the campaign's Target Devices filter. To avoid this, ensure your campaign audience or journey entry condition filters for players with `Core: push enabled, user has at least one device = true` (or push status `Allowed`).

**How do I track conversions resulting from a push notification?**

When a player clicks a push notification or one of its action buttons, Smartico updates the player's `Core: Push Last Click Date` property and records a Click engagement. In your campaign settings, you can define a conversion rule such as: *Convert campaign when event (e.g. Deposit / Bet) occurs for users where Core: Push Last Click Date is within 1 day*. You can also use `Core: Push Last Click Date` or `Push Last Open Date` in Journey condition branches to trigger follow-up communications.

**How do push notifications work on Apple iOS devices?**

On iOS 16.4 and later, web push notifications are supported only if the user adds your website to their iPhone or iPad Home Screen as a Progressive Web App (PWA) and launches it from the Home Screen icon. Standard Safari browser tabs on iOS do not support web push. If you have a native iOS mobile app, push notifications work directly through Apple Push Notification service (APNs) and Firebase without requiring PWA installation.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.smartico.ai/welcome/products/crm-automation/communication-channels/how-to-create-a-push-resource.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
