✍XMP supports receiving customer data via Postback, which helps you to:
- View relevant data in real-time, including ROI, LTV, ROAS, retention, and more.
- Integrate attribution data and ad data into a unified report.
API Endpoint
https://xmp-postback.mobvista.com/s2s/postback/v2
Request Method
HTTP POST
Request Body Parameters
Format: JSON
parameters | type | required | description |
xmp_token | string | Yes | xmp token, communicate with operations manager to get it |
activity_kind | string | Yes | fixed passed value: in-app-event-agg |
data | []object | Yes | multiple data records, up to 200 records. |
data.channel | string | Yes | channel source, see enumerated values in the table below, please pass the values according to the specification or the data will not be matched |
data.campaign_id | string(64) | Yes | campaign id. Mintegral, Applovin, Unity, ironSource, and Vungle do not have this level ID. Please ensure correct submission. |
data.adset_id | string(64) | Yes | adset id |
data.ad_id | string(64) | Yes | ad id |
data.country | string(2) | Yes | country code, two uppercase letters, e.g., CN, US If you can't determine the region, pass an empty space |
data.subsource_id | string(128) | No | subsource_id |
data.event_name | string(64) | Yes | event name, at least one of event_count, event_value, event_unique_users, and event_revenue_usd should be passed |
data.event_count | int(11) | No | event count |
data.event_value | numeric(20,6) | No | event value, up to 6 decimal |
data.event_unique_users | int(11) | No | event users |
data.event_revenue_usd | numeric(20,6) | No | us dollar amount of income from the event, up to 6 decimals |
data.event_date | string(10) | Yes | yyyy-mm-dd, the date when the event occurred. |
data.active_date | string(10) | Yes | yyyy-mm-dd, it must be within the most recent 90 days. |
data.timezone | string | No | data timezone, see enumerated values in the following table |
data.request_id | string(128) | Yes | The unique identifier for each piece of data is used for data deduplication and correction. This ID should be generated by the requester and guaranteed to be unique. The recommended combination of request_id is: {channel}_{campaign_id}_{adset_id}_{ad_id}_{country}_{event_name}_{event_date}_{active_date}_{app_id}. You can concatenate the dimensional fields according to the actual needs. When the length of the combination exceeds 128 characters, you can generate a hash value. |
data.app_id | string(128) | Yes |
iOS : Starting with "id", for example, id123456789. Android : For example, com.app.game. |
Request Body Example
{
"xmp_token": "abcdefg",
"activity_kind": "in-app-event-agg",
"data": [
{
"channel": "facebook",
"campaign_id": "123",
"adset_id": "456",
"ad_id": "789",
"country": "US",
"event_name": "ad_payment",
"event_count": 10,
"event_value": 10,
"event_unique_users": 6,
"event_revenue_usd": 21.16,
"event_date": "2025-03-10",
"active_date": "2025-03-10",
"request_id": "facebook_123_456_789_US_11700_20250310_20250310",
"app_id": "app.xmp.com"
}
]
}
Response
parameters | type | description |
---|---|---|
code | int | success: 200; abnormal parameters: 400; unauthorized: 401 |
msg | string | message |
batch_id | string | request batch id, please make a good record of it, as it can be used for problem troubleshooting |
Channel Source
channel | value |
Organic | organic |
TikTok | tiktok |
Kwai | kwai |
Huawei Global | huawei_global |
Apple Search Ads | apple |
Mintegral | mintegral |
Applovin | applovin |
Unity | unity |
ironSource | ironsource |
Vungle | vungle |
Time Zone
time zone | value | time zone | value |
0 time zone | UTC+0 | - | - |
+1 time zone | UTC+1 | -1 time zone | UTC-1 |
+2 time zone | UTC+2 | -2 time zone | UTC-2 |
+3 time zone | UTC+3 | -3 time zone | UTC-3 |
+4 time zone | UTC+4 | -4 time zone | UTC-4 |
+5 time zone | UTC+5 | -5 time zone | UTC-5 |
+6 time zone | UTC+6 | -6 time zone | UTC-6 |
+7 time zone | UTC+7 | -7 time zone | UTC-7 |
+8 time zone | UTC+8 | -8 time zone | UTC-8 |
+9 time zone | UTC+9 | -9 time zone | UTC-9 |
+10 time zone | UTC+10 | -10 time zone | UTC-10 |
+11 time zone | UTC+11 | -11 time zone | UTC-11 |
+12 time zone | UTC+12 | -12 time zone | UTC-12 |
Page Configuration
I. Authorized Platforms
1. Add a self-built attribution account in Administration > Platform Management > Add Platform.
2. Select Factorization Platform > Self-created Factorization and enter the account name.
II. Binding applications
1. Go to the Management > Platform Management > Application Binding page.
2. Click [Select Apps], in the pop-up dialog box, select one or more apps to be bound, binding platform select Self-built attribution, select the Self-built attribution account you need to bind, for Android apps, enter the package name of the app, and for iOS apps, enter the store ID, e.g. id387683439; click OK to submit.
III. Incident management
👇If you don't complete this step, you won't be able to view Roas, user revenue, retention, and other related metrics.
1. Go to Administration > Platform Management > Application Binding page, which supports single or batch management of customized events, as shown in the figure below Click the function portal of Event Management
2. Fill in the name of the event for which the self-attribution statistic is Revenue and Retention.
View Data
1. After completing the above steps, the data can be viewed in 1~2 hours
2. Where to view the data: Promotion / Reports / Traffic etc. > Custom Columns > S2S
Description
1、For the timeliness of data submission, it is recommended to report data to XMP side in real time.
2、For data integrity, it is recommended to retry up to 2 times in a minute after a failed report.
3、The latest report data of the day is updated every 10 minutes.
4、This is a premium paid feature, please contact your business/operation manager before using it.