I am exploring mobile push and need to understand what's happening on a data side. I see this image from contact builder:

enter image description here

This table - mobile push demographics - how does this become populated?

I'm struggling giving that the SDK Documentation states that we should use ContactKey / SubscriberKey, however I don't see this attribute anywhere - and it isn't used to link to all subscribers.

So if i have an externally managed subscriber key - meaning that new subscribers can come into my platform by downloading the app first, and i generate the subscriber key and then push that into the marketing cloud - then this is before they actually have a contact id.

Can someone explain how this process works / should work ?

2 Answers 2


MobilePush Demographics holds information sent to the Marketing Cloud by your application. You can also import contacts into MobilePush and you will see the data for the contacts in the table. It is also the table where you will add any custom attributes you wish to pass to the Marketing Cloud.

The SubscriberID on the table is an auto-populated field which populates when a contact record is created; it is not the same thing as ContactKey/SubscriberKey. The ContactKey (SubscriberKey) is a root table value and is not part of MobilePush Demographics since MobilePush Demographics relates back to the root table on ContactID.

When a new contact record is created by your application sending a registration call to the Marketing Cloud it is create on the root table and on MobilePush Demographics.

Here is information for setting the SubscriberKey for iOS: http://salesforce-marketingcloud.github.io/JB4A-SDK-iOS/features/subscriber-key.html

Here is information for setting the SubscriberKey for Android: http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/features/subscriber-key.html

  • Thanks T. Ferguson ! I believe this clarifies - so essentially we need to ensure that our app has some logic to lookup to see if an existing subscriber exists, to retrieve existing records SubscriberKey, and if not then do a create call / lookup call to create a subscriber with the right key, prior to us using the setSubscriberKey statement in the code. When that is then done, it will create a record in the mobilepush demographics, where it will leverage the internal Contact ID - this is not something we need to push via the app. Correct? Apr 3, 2017 at 10:24

Subscriber Key is poorly named in the SDK and that is being corrected in an upcoming release of the SDK.

Subscriber Key IS Contact ID in the diagram you show above. If your application registers with the Marketing Cloud servers then a new contact is created and will be propagated throughout the system. If you do not provide a Subscriber Key then a new random GUID is created for your user until such time, if ever, that you set an ID from your application.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .