Purchasely
3.4
Rechercher…
⌃K

OneSignal

Why combine OneSignal and Purchasely?

Pre-requisites

The minimal version of the Purchasely SDK supporting this integration is v3.2.0. If the Purchasely SDK integrated in your app is under the minimal version, please update it.
The OneSignal SDK also needs to be integrated inside the app.

Subscription events

General overview

OneSignal is one of the leading customer engagement solutions for Push Notifications, Email, SMS & In-App.
This integration will allow you to get all Purchasely subscription events to OneSignal making you able to trigger automated communication based on those events, messages that could be linked to a Purchasely powered paywall to engage, upsell, retain customers.
Purchasely provides a unified dataset to track the subscription events for all stores. These events are generated by the Purchasely Backend and your OneSignal users' can be updated accordingly.
Subscription events generated by Purchasely will be sent to OneSignal using a server-to-server integration. As a result, you will be able to see all the subscription events in your OneSignal Dashboard and map them with your acquisition campaigns.

Events

The following events are the main ones that will trigger an udpate of your OneSignal users by Purchasely. See the full list here.
Event
Description
SUBSCRIPTION_STARTED
Sent when the user purchased a product wether it is the start of a trial or a regular purchase of a consumable product.
SUBSCRIPTION_RENEWED
Sent when a subscription renews
SUBSCRIPTION_EXPIRED
Sent when the subscription actually ends
SUBSCRIPTION_REACTIVATED
Sent when an expired subscription is reactivated. This event is particularly useful for win-back & retargeting campaigns
SUBSCRIPTION_REFUNDED_REVOKED
Sent when the subscription actually ends
RENEWAL_DISABLED
Sent when the user deactivates the renewal of a subscription wether it is in trial period or not.
RENEWAL_ENABLED
Sent when the user reactivates
TRIAL_STARTED
Sent when a trial starts
TRIAL_CONVERTED
Sent when a user converts from a free trial to a normal paid-period
TRIAL_NOT_CONVERTED
Sent when a user finishes it's trial period without renewing to a paid-period

Properties

The following properties are the main ones this integration can set and update in your OneSignal users as tags:
Property
Description
USER_ID
Contains the user_id that holds the purchase.
PLAN
Contains the Plan id that was bought.
SUBSCRIPTION_STATUS
Filled for events that regards a subscription.
Possible Values :
  • AUTO_RENEWING
  • ON_HOLD
  • IN_GRACE_PERIOD
  • AUTO_RENEWING_CANCELED
  • DEACTIVATED
  • REVOKED
  • PAUSED
  • UNPAID
STORE
Contains the name of the Store through which the purchase was made.
Possible values:
  • APPLE_APP_STORE
  • GOOGLE_PLAY_STORE
  • AMAZON_APPSTORE
  • HUAWEI_APPGALLERY
STORE_COUNTRY
Contains the store country where the purchase was made.
PURCHASED_AT
Contains the date of the last transaction (original purchase or renewal).
NEXT_RENEWAL_AT
Contains the next automatic renewal date**.**
OFFER_TYPE
Contains the current offer the subscription is under.
Possible values:
  • NONE: the user is paying the normal price, no offer associated
  • FREE_TRIAL
  • INTRO_OFFER
  • PROMO_CODE
GRACE_PERIOD_EXPIRES_AT
Contains the date when the grace period will end.
LAST_EVENT
Name of the last event received for that subscription
IS_FAMILY_SHARED
Contains true or false depending on if the user has access to the subscription thanks to family sharing.
OFFER_IDENTIFIER
Contains the promo code used at the time of the purchase.
ORIGINAL_PURCHASED_AT
Contains the date of the first transaction.
The properties' names set in OneSignal can be overriden when setting up the integration.

Integrating Purchasely with OneSignal

The integration requires 2 steps:
  1. 1.
    Associate the user to events by providing the OneSignal Player ID to the Purchasely SDK
  2. 2.
    Activate the OneSignal integration in the Purchasely Console

1. Associating users to events

See the OneSignal Documentation for more information
Swift
Kotlin
Java
React Native
if let oneSignalPlayerId = OneSignal.getDeviceState()?.userId {
Purchasely.setAttribute(.oneSignalPlayerId, value: oneSignalPlayerId)
}
OneSignal.getDeviceState()?.userId?.let {
Purchasely.setAttribute(Attribute.ONESIGNAL_PLAYER_ID, it)
}
Purchasely.setAttribute(Attribute.ONESIGNAL_PLAYER_ID, OneSignal.getDeviceState().getUserId());
var adid = OneSignal.getAdid();
Purchasely.setAttribute(Attributes.ONESIGNAL_PLAYER_ID, (await OneSignal.getDeviceState()).getUserId());

2. Activating the OneSignal integration

The activation requires 2 steps:
  1. 1.
    Retrieving your app id and API key in the OneSignal Dashboard
  2. 2.
    Enabling the OneSignal integration in the Purchasely Console

a. Retrieving your app token and your app's API key in the OneSignal Dashboard

  1. 1.
    Log into your OneSignal dashboard: https://app.onesignal.com/login
  2. 2.
    Access your App
3. Got to your App's Settings
4. Access the "Keys" submenu
5. Your app’s app id is beneath the OneSignal App ID title
6. Your app's API key is beneath the Rest API Key title

b. Enabling the OneSignal integration in the Purchasely Console

  1. 1.
    Go in the "External integrations" section, and open the edition form for OneSignal:
2. Enable the integration
3. Set your OneSignal app id
4. Set your OneSignal app API key
5. Enable the properties you want to be set and updated as OneSignal tags for your users
6. (Optional) Override the property names that will be used when updating your users' OneSignal tags
7. Save

Testing your integration

To test your integration, you can perform a set of in-app purchases in a Sandbox environment (eg: TestFlight for the App Store) and verify your user's tags are properly updated in the OneSignal dashboard (https://app.onesignal.com/login).
If testing using Automated Messages, bear in mind that OneSignal automated messages are sent roughly every 4-6 hours if you are on a free plan, and within a few minutes if you are on a paid plan.