TalkingData integration plan
Note that data generated by third-party data integration counts toward the cluster's data consumption
Summary
Interface overview
| Interface | Type | Granularity | Attribution | Cost | Revenue | Impressions | Clicks | Conversions |
|---|---|---|---|---|---|---|---|---|
| Custom data callback | Callback | User level | ✅ | ✅ |
TalkingData provides a custom data callback feature, which we can use to get user-level activation or registration data
Before you start connecting TalkingData mobile advertising data, make sure that you have read the AE system's user identification rules and understand how AE identifies a user through #distinct_id and #account_id
Integration process
- Integrate the TalkingData client SDK and the AE client SDK, and set the AE user identification ID in the TalkingData SDK
- Log in to the AE backend, go to the Third-party Integration module, add a TalkingData integration plan, complete the related configuration, and copy the callback URL
- Log in to the TalkingData backend, click Add Data Callback on the Management Center > Data Management page, and select the project and the callback event (registration or activation) for the callback data
- Check whether the AE system receives the data successfully, and build reports
1. Client SDK reporting
If you choose to report data with the client SDK, first integrate the TalkingData SDK and the AE SDK into your app. If you want to send back TalkingData activation events, set the distinct ID of the AE SDK as the custom ID when you initialize the TalkingData SDK:
// Initialize the AE SDK first
TDAnalytics.init(this, APPID, SERVER_URL);
// Get the AE distinct ID, which corresponds to #distinct_id in AE
String distinctId = TDAnalytics.getDistinctId();
// Set up the TalkingData SDK
JLibrary.InitEntry(this); //Initialize the MSA unified SDK 1.0.13
TalkingDataSDK.init(this, "Your App ID", "Channel ID", distinctId);
If you want to send back registration events, set the same account ID in the AE SDK and the TalkingData SDK:
// Get the account ID
String accountId = "Account ID";
// Set up the AE SDK
TDAnalytics.login(accountId);
// Set up the TalkingData SDK
TalkingDataSDK.onRegister(accountId);
2. Plan configuration
After completing the SDK configuration, log in to the AE backend and configure the TalkingData plan in the Third-party Integration module. The image below shows the configuration page of the TalkingData custom data callback plan:
2.1 User identification fields
Because TalkingData custom callback data is user-level data, you need to set user identification rules for it, that is, the AE system's user identification ID set in the TalkingData SDK. Based on this configuration, the AE system sets these fields as the user identification fields of the data when it converts the callback data.
If you configured the client SDK as described in the previous step of this document, use the following configuration:
- Field associated with the account ID: ACCOUNTID
- Field associated with the distinct ID: CUSTOM
2.2 Event Data Configuration
After you turn on the Event Data Configuration switch, all data sent back by TalkingData is written to the event table. We recommend that you enable event data ingestion.
2.3 User Properties Configuration
By default, the AE system does not write TalkingData callback data to user properties. To write some fields, such as user attribution fields, to the user table, first turn on the rule so that it runs, and then use the property mapping feature to add the fields to write to the user table. For the source property name, enter the field's ingested name:
We recommend that you add the user properties to ingest as follows:
| Source data name | Target property name | Description |
|---|---|---|
| ADNETNAME | te_ads_object.media_source | Media source |
| ADCAMPAIGN | te_ads_object.campaign_name | Campaign name |
| ADGROUP | te_ads_object.ad_group_name | Ad group name |
| ADCREATIVE | te_ads_object.ad_name | Ad name |
2.4 Configuration
In the Configuration module, you can control the detailed settings of data pulling, such as the event name after ingestion
The content of the configuration is a JSON, which you can customize as follows:
| Module | Name | Description |
|---|---|---|
| sink_event | event_mapping | Event name after ingestion. Customizable. The key is the TalkingData callback data type, and the value is the event name after ingestion. Valid keys:
|
2.5 End Point
If you have configured system-level and project-level data reporting URLs, the following link is displayed. You can copy the URL directly and paste it into the real-time callback configuration in the TalkingData backend:
If no URL is displayed here, open Project Settings → Settings → Implementation from the menu in the upper-right corner and configure the URL for public network. This URL is the data reporting URL configured in the AE SDK. After configuring it, go back to End Point on the TalkingData callback configuration page and copy the endpoint URL.
3. Set up callbacks
3.1 Add a data callback
To connect TalkingData mobile advertising data, log in to the TalkingData mobile ad tracking backend. On the Management Center > Data Management tab, you can view and configure all data callbacks.
- Next, click Add Data Callback to go to the page for creating a data callback
- Then, name the data callback, select the app whose data you want to send back, and select either the activation or the registration event in Callback Event. Then, enter the endpoint URL of the TalkingData plan in the AE system in Data Receiving URL
- Next, configure the event parameters based on the callback event you selected and section 3.2. After completing the configuration, click Save to finish configuring the callback.
3.2 Callback parameter configuration
3.2.1 Activation event
If you send back activation events, we recommend that you set the ingestion name of each macro according to the parameter names in the table below:
| Parameter name | Macro | Supported platforms | Parameter description | Sample |
|---|---|---|---|---|
| APPKEY | #APPKEY | All platforms | Unique identifier of the app in the Ad Tracking system | 10691808c7dc494eba8afd44cdef1df7 |
| EVENTTIME | #EVENTTIME | All platforms | Time when the event occurred, 13-digit UNIX timestamp | 1451379329000 |
| OSVERSION | #OSVERSION | All platforms | OS version of the device | 9.2 |
| DEVICETYPE | #DEVICETYPE | All platforms | Device type | iPad4,4 |
| OAID | #OAID | Android | Android device ID | |
| OAID_MD5 | #OAID_MD5 | Android | Encrypted Android device ID | |
| OAID_MD5_1 | #OAID_MD5_1 | Android | Encrypted Android device ID | |
| ADVERTISINGID | #ADVERTISINGID | Android | Advertising ID, provided by Google Play Services | 4c30a866-30d6-4418-a6dc-0f702737bf58 |
| ADVERTISINGID_MD5 | #ADVERTISINGID_MD5 | Android | Encrypted advertising ID | |
| ANDROIDID | #ANDROIDID | Android | Unique device identifier of the Android device | |
| ANDROIDID_MD5 | #ANDROIDID_MD5 | Android | Encrypted unique device identifier of the Android device | |
| ANDROIDID_MD5_1 | #ANDROIDID_MD5_1 | Android | Encrypted unique device identifier of the Android device | |
| IMEI | #IMEI | Android | International Mobile Equipment Identity | 493002407599521 |
| IMEI2 | #IMEI2 | Android | International Mobile Equipment Identity 2 | |
| TDID | #TDID | All platforms | TalkingData's unique device identifier | hc5e59e1926ee0fe142b22610cdda14df |
| IP | #IP | All platforms | IP when the event occurred | 123.123.123.123 |
| SPREADURL | #SPREADURL | All platforms | Six-character short link; unique identifier of the promotion campaign | Vx7b6c |
| SPREADNAME | #SPREADNAME | All platforms | Promotion campaign name | "Domob promotion - material 1" |
| SPREADGROUP | #SPREADGROUP | All platforms | Promotion campaign group name | |
| UA | #UA | All platforms | UA information of the device that clicked the ad | |
| CLICKIP | #CLICKIP | All platforms | IP information of the device that clicked the ad | 123.123.123.123 |
| CLICKTIME | #CLICKTIME | All platforms | Time when the ad was clicked, 13-digit UNIX timestamp | 1451379329000 |
| ADNETNAME | #ADNETNAME | All platforms | Ad network name (unique English identifier) | “Domob” |
| ADNETDESC | #ADNETDESC | All platforms | Ad network description (Chinese identifier; may change as the integration is upgraded) | "Domob" |
| CHANNELPACKAGEID | #CHANNELPACKAGEID | All platforms | Sub-package ID integrated in the app, also called "channeled" | “jifeng_1” |
| CLICK | @_ | All platforms | Parameters of the associated click in JSON format | {"a":"1","b":"2"} |
| ASSISTANT_CLICK_1 | #ASSISTANT_CLICK_1 | All platforms | Promotion campaign name of assist click 1 | |
| ASSISTANT_CLICK_2 | #ASSISTANT_CLICK_2 | All platforms | Promotion campaign name of assist click 2 | |
| ASSISTANT_CLICK_3 | #ASSISTANT_CLICK_3 | All platforms | Promotion campaign name of assist click 3 | |
| TD_SUBID | #TD_SUBID | All platforms | Sub-channel ID | |
| ACTIVE_TYPE | #ACTIVE_TYPE | All platforms | Activation type | |
| FRAUD_PREVENTION | #FRAUD_PREVENTION | IOS Android | Anti-fraud flag | "0" means no anomaly; "1" means abnormal activation by IP; "2" means abnormal activation by conversion time difference; "3" means abnormal activation by association; "4" means activation with IP migration (Advanced anti-fraud only); "5" means abnormal LAT activation (Advanced anti-fraud only); "6" means brand-new device activation (Advanced anti-fraud only); |
| ATTRIBUTION_TYPE | #ATTRIBUTION_TYPE | IOS Android | Attribution source | "click" means from a click; "impression" means from an impression; "deeplink" means from a deep link wake-up; |
| ADCREATIVE | #ADCREATIVE | All platforms | Ad creative | |
| ADCAMPAIGN | #ADCAMPAIGN | All platforms | Campaign | |
| ADGROUP | #ADGROUP | All platforms | Ad group | |
| APPSTOREID | #APPSTOREID | IOS | App Store ID | 1046850159 |
| IDFA | #IDFA | IOS | Advertising identifier on iOS | 6C59CB5A-3091-4246-AA6E-9C025FE0E33B |
| MAC | #MAC | Android | MAC address string as specified by the IEEE 802 standard | AB:12:CD:34:EF:56 |
| CUSTOM | #CUSTOM | All platforms | Custom parameters | |
| CLICKTRACKID | #CLICKTRACKID | All platforms | Tracking ID of the click corresponding to the activation |
3.2.2 Registration event
If you send back registration events, we recommend that you set the ingestion name of each macro according to the parameter names in the table below:
| Parameter name | Replacement macro | Supported platforms | Parameter description | Sample |
|---|---|---|---|---|
| SPREADURL | #SPREADURL | All platforms | Six-character short link; unique identifier of the promotion campaign | Vx7b6c |
| SPREADNAME | #SPREADNAME | All platforms | Promotion campaign name | "Domob promotion - material 1" |
| UA | #UA | All platforms | UA information of the device that clicked the ad | |
| CLICKIP | #CLICKIP | All platforms | IP information of the device that clicked the ad | 123.123.123.123 |
| CLICKTIME | #CLICKTIME | All platforms | Time when the ad was clicked, 13-digit UNIX timestamp | 1451379329000 |
| CLICK | @_ | All platforms | Parameters of the associated click in JSON format | {"a":"1","b":"2"} |
| ACCOUNTID | #ACCOUNTID | All platforms | Account in the app when the event occurred | |
| APPKEY | #APPKEY | All platforms | Unique identifier of the app in the Ad Tracking system | 10691808c7dc494eba8afd44cdef1df7 |
| EVENTTIME | #EVENTTIME | All platforms | Time when the event occurred, 13-digit UNIX timestamp | 1451379329000 |
| OSVERSION | #OSVERSION | All platforms | OS version of the device | 9.2 |
| DEVICETYPE | #DEVICETYPE | All platforms | Device type | iPad4,4 |
| IDFA | #IDFA | IOS | Advertising identifier on iOS | 6C59CB5A-3091-4246-AA6E-9C025FE0E33B |
| MAC | #MAC | Android | MAC address string as specified by the IEEE 802 standard | AB:12:CD:34:EF:56 |
| ADVERTISINGID | #ADVERTISINGID | Android | Advertising ID, provided by Google Play Services | 4c30a866-30d6-4418-a6dc-0f702737bf58 |
| ANDROIDID | #ANDROIDID | Android | Unique device identifier of the Android device | |
| IMEI | #IMEI | Android | International Mobile Equipment Identity | 493002407599521 |
| TDID | #TDID | All platforms | TalkingData's unique device identifier | hc5e59e1926ee0fe142b22610cdda14df |
| IP | #IP | All platforms | IP when the event occurred | 123.123.123.123 |
| ADNETNAME | #ADNETNAME | All platforms | Ad network name (unique English identifier) | “Domob” |
| ADNETDESC | #ADNETDESC | All platforms | Ad network description (Chinese identifier; may change as the integration is upgraded) | "Domob" |
| CHANNELPACKAGEID | #CHANNELPACKAGEID | All platforms | Sub-package ID integrated in the app, also called "channeled" | “jifeng_1” |
| DEEPLINK | #DEEPLINK | All platforms | Deep link |
4. Data ingestion rules
4.1 Activation event ingestion rules
- By default, CUSTOM in the data is used as the distinct ID of the data. This field should correspond to the distinct ID in the AE project
- The EVENTTIME field in the data, that is, the data time, is used as the event's #event_time
- The event name is talkingdata_init_data
- All other fields configured in the callback link are stored
4.2 Registration event ingestion rules
- By default, ACCOUNTID in the data is used as the account ID of the data. This field should correspond to the account ID in the AE project
- The EVENTTIME field in the data, that is, the data time, is used as the event's #event_time
- The event name is talkingdata_register_data
- All other fields configured in the callback link are stored
4.3 Standardized fields
The AE system standardizes some fields in the TalkingData callback data:
| Field | Standardized field | Description |
|---|---|---|
| ADCAMPAIGN | te_ads_object.campaign_name | Campaign name |
| ADGROUP | te_ads_object.ad_group_name | Ad group name |
| ADCREATIVE | te_ads_object.ad_name | Ad name |
| ADNETNAME | te_ads_object.media_source | Media source |
| APPSTOREID | te_ads_object.app_id | App ID |
5. Notes
If the CUSTOM of an activation event or the ACCOUNTID of a registration event cannot be matched to a distinct ID or account ID in the AE project, these events are attached to a virtual user (whose distinct ID is without_id). To later associate the event data attached to the virtual user with actual users in the AE project, set TalkingData's td_id as a user property of the corresponding users, and then connect the user data through data backfilling.
String td_id = TalkingDataAppCpa.getDeviceId(this);
try {
// Set td_id as a user property
JSONObject properties = new JSONObject();
properties.put("td_id",td_id);
TDAnalytics.userSet(properties);
} catch (JSONException e) {
e.printStackTrace();
}

