Event Types

Full JSON schemas for all events partners are available at: https://app.namiml.com/api/v1/events/schema/

device

Events in this category are generated by a specific device using the Nami SDK.

Event TypeDescription

device.impression

This event is produced each time the device presents a paywall screen to the user.

device.session.start

Produced at the start of an app session.

device.session.end

Produced at the end of an app session.

device.transaction

Produced when a purchase is generated on the device.

purchase

Events in this category are generated for a specific purchase.

Event TypeDescription

purchase.updated

Triggered by any change to Purchase.

user

User events are tied to a specific user in the Nami platform.

User event payloads include the following data on the user's current state

Below is an example payload.

{
  "active_entitlements": [
    {
      "description": "Radio Nami Premium",
      "entitlement_ref_id": "premium",
      "expiration": "2020-10-10T23:58:51Z",
      "last_verified": "2020-09-10T00:00:00.356795Z",
      "name": "Radio Nami Premium",
      "purchase_platform": "apple",
      "sku_ref_id": "radio_nami_monthly_subscription"
    }
  ],
  "customer_journey_state": {
    "former_subscriber": false,
    "in_account_hold": false,
    "in_grace_period": false,
    "in_trial_period": false,
    "in_intro_offer_period": false,
    "in_pause": false,
    "is_cancelled": false
  },
  "devices": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "platform": {
        "id": "00000000-0000-0000-0000-000000000000",
        "name": "App Store",
        "platform_type": "apple",
        "marketplace_app_id": "com.namiml.RadioNami"
      }
    }
  ],
  "event_type": "user.subscription.renewed",
  "event_platform": "apple",
  "external_ids": [
    {
      "key": "original_transaction_id",
      "type": "original_transaction_id",
      "value": "1000000500000000"
    },
    {
      "key": "external_id",
      "type": "uuid",
      "value": "00000000-0000-0000-0000-000000000000"
    }
  ],
  "user_id": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "created_date": "2020-05-29T00:57:11.227760+00:00"
}

user.journey

User journey events describe the journey your app users go on as you try to nurture them towards being sustained paying customers.

trial

Free trials are an important tool in converting users of your app to loyal paying customers. We offer a few events to track this important stage of the customer journey.

Event TypeDescription

user.journey.trial.converted

A user's free trial has ended and they are now paying for their subscription.

user.journey.trial.did_not_convert

The user's subscription has expired and they did not continue as a paying subscriber.

user.journey.trial.started

The user started a free trial.

user.subscription

User subscription events are used to track any changes to a user's subscription status. Since Nami runs both cross-platform and cross-device, we can sync your users' subscription status across platforms.

These events can be used to manage changes to a user's entitlement state as well as provide analytics insights into your subscriber base.

Event TypeDescription

user.subscription.cancelled

User cancelled their subscription. A cancellation is the point at which the user decided to cancel or shut off auto-renewal on a subscription. At this time the user still has access to their entitlement.

user.subscription.expired

User's subscription expired, either because it does not auto-renew, they had previously cancelled, or the payment has not been received. The expired event occurs when the final subscription billing term ends and the entitlement is revoked

user.subscription.in_grace_period

User is currently in grace period with an expired subscription due to the payment failing

user.subscription.paused

User paused their subscription and it will automatically resume at a future time. Android only

user.subscription.pending_sku_change

User has purchased a new SKU as part of an upgrade, downgrade, or crossgrade, but has not been billed yet for that change. The new SKU will go into effect at the next bill term.

user.subscription.purchased

User made a new purchase

user.subscription.renewal_in_grace_period

User was in grace period and the subscription was recovered.

user.subscription.renewed

User's subscription was renewed.

user.subscription.resumed

User re-enables auto-renew after previously turning auto-renew off.

or

User resumed a subscription that had previously been paused. Android only.

user.subscription.sku_change

User has purchased a different SKU that grants the same entitlement.

user.subscription.transferred.from

This event informs you that a user's entitlement was revoked by an entitlement transfer. See Entitlement Transfers below.

user.subscription.transferred.to

This event informs you that a user was granted an entitlement by an entitlement transfer. See Entitlement Transfers below.

Entitlement Transfers

The Nami SDK manages the concept of a user account in your app through the NamiCustomerManager.login and NamiCustomerManager.logout calls.

If you call NamiCustomerManager.login with a external_id, we will link that app install to the provided identifier.

Call loginwhen a user signs up, registers, or logs in to a previously created account.

If the user logs out in your app, be sure to also call logout

Please note, there may still be valid purchases on the device. When those entitlements get associated with this new user, we revoke the entitlement on the old user so the old account will no longer have access.

This is done via an entitlement transfer process and our event system will produce two events for you to understand this transfer

  • user.subscription.transferred.from

  • user.subscription.transferred.to

which describes which user we revoked the entitlement from, the from user, and which user was granted the entitlement, the to user.

Please see Accounts, Login, and Logout for more information about managing user accounts.

Last updated