Troubleshoot Initialization and Registration

Before troubleshooting more specific initialization and registration issues, review basic MobilePush SDK troubleshooting information for Android and iOS implementations. Doing so can help you identify and resolve any fundamental issues affecting your implementation.

Unless your application successfully initializes the MobilePush SDK, contacts and devices don't appear in Engagement. First, ensure the SDK is initialized correctly.

Engagement can take up to five minutes to process and display new device registrations. If your devices or contacts don't show up after successful SDK initialization, wait at least five minutes and check for the contact key again by doing the following.

  1. In Engagement, navigate to Audience Builder > Contact Builder > All Contacts.
  2. Select the MobilePush channel in the left navigation.
  3. Search for and select the contact key or device ID for the user that you’re troubleshooting.

You can't look up a contact in Engagement if you didn't set a contact key. When you don't set a contact key, Engagement generates and assigns a corresponding contact key to the contact as a random GUID. To identify the GUID and determine whether the device was registered, follow these steps.

  1. In Engagement, navigate to Audience Builder > Contact Builder > All Contacts.
  2. Select the MobilePush channel in the left navigation.
  3. Search for and select the contact key or device ID for the user that you’re troubleshooting.

Talk to your marketer about revising your contact key strategy.

A device ID is analogous to an instance of an app installation. Whenever a contact installs your app, the MobilePush SDK creates a corresponding device ID. MobilePush SDK creates a New device ID for a contact in these example scenarios:

  • If the contact purchases a new mobile device and installs your app.
  • If the contact deletes the app and then later reinstalls your app.
  • If the contact does a factory-reset of the device and then reinstalls the app.

You can’t delete additional device IDs. There's also no age-decay criteria to automatically delete less-active devices. However, you can review the device IDs associated with a contact by doing the following.

  1. In Engagement, navigate to Audience Builder > Contact Builder and click the All Contacts tab.
  2. Select the MobilePush channel in the left navigation.
  3. Search for and select the contact key or device ID for the user that you’re troubleshooting.
  4. On the contact’s Attributes tab, locate the MobilePush section.
  5. Review the MobilePush channel details for the contact, including device IDs.

Engagement determines whether a device is eligible to receive push notifications in the following ways.

User Engagement

When a user launches the app, the app potentially sends registration data to Engagement, even if the device is opted out of receiving push notifications. This scenario is represented in step 3 of the following diagram that depicts how the MobilePush SDK works. However, older devices can remain inactive for a while, stored away in a drawer for months or even years, therefore being unable to communicate with Engagement. In such scenarios, older device IDs can still be opted in and persist in Engagement by way of not being able to send registration data.

Push Notification Service (PNS)

The PNS notifies Engagement that the device must no longer receive notifications. Following this notification, Engagement awaits confirmation regarding a device's eligibility to receive push notifications. After receiving this confirmation, Engagement opts the device out from receiving future push notifications. However, Engagement exercises caution in opting out devices and waits until explicitly instructed by the PNS that a device has opted out, or until it encounters three consecutive delivery failures from the PNS. This particular scenario is illustrated in step 6b of the MobilePush SDK operational diagram.

How the MobilePush SDK works

For information on common causes for contact dissociation and guidance on how to avoid it, see Contact Dissociation. Additionally, review information about how you can delete dissociated contacts from your account.

If your app doesn’t set the contact key in the device registration, Engagement automatically generates and assigns a random GUID to represent that contact in Engagement. For information about setting the contact key, see Register Contacts with Engagement.

The following table describes the reasons why attributes don't appear in Engagement, and the steps to resolve each issue.

ReasonDescriptionTroubleshooting Steps
SDK not fully initializedIf the device attempts to make registration calls or method updates before the SDK is fully initialized, the calls don’t resolve.
  • Ensure that your app successfully initializes the SDK before proceeding with any registration calls or method updates.
  • Enable logging that begins with the SDK’s initialization (Android, iOS). Review the logs for any errors and troubleshoot as needed.
Attributes cleared using the SDK's clear methodIf you use the clear method in the SDK to remove attributes, the registration call is updated to reflect the cleared state. This update means that the SDK doesn’t send any attributes to Engagement.
  • Ensure that you don’t clear any attributes that you already set.
  • To review the output from the SDK’s current state, use the getSdkState() convenience method (Android, iOS).
    Attributes mismatch with MobilePush Demographics tableAttributes must match the name and data type that is registered in the MobilePush Demographics table in Contact Builder. If the attributes don’t exist or use a different data type, Engagement rejects or doesn’t update the attributes that the SDK sends.Ensure that the attributes that you send to that Engagement exist in Contact Builder.
    • In Engagement, navigate to Audience Builder > Contact Builder > Data Designer > MobilePush Data.
    • Select and review the attributes that are associated with the Demographics table.