SKAN v4 mapping API
The mapping endpoint returns information about an advertiser's conversion value mapping. Network partners may fetch this information at any time by making a GET request to the endpoint.
Endpoint
https://app.adjust.com/skadnetwork/v4/{sk_network_token}/mapping/{app_store_id}
GET request
Returns mapping information as an array of JSON objects. Each GET request must contain the following parameters.
Parameter | Data type | In | Description |
---|---|---|---|
sk_network_token * | String | Path | Partner-specific token assigned by Adjust. Example: abcdefklmn |
app_store_id * | String | Path | The App Store ID of the app. Example: 1125517808 |
Response
The mapping endpoint returns an array of three JSON objects corresponding with the three postbacks sent by SKAdNetwork v4. Each object is identified by its corresponding conversion_window
.
The endpoint returns both fine and coarse mapping information for the first postback only. The second and third postback contain coarse mapping information.
[
{
"data": {
"fine": [{}],
"coarse": [{}],
"settings": {},
},
"conversion_window": 1
},
{
"data": {
"coarse": [{}],
"settings": {},
},
"conversion_window": 2
}
{
"data": {
"coarse": [{}],
"settings": {},
},
"conversion_window": 3
}
]
Fine conversion value fields
The mapping endpoint returns a breakdown of each mapped conversion value and its associated details.
[
{
"data": {
"fine": [
{
"conversion_value":12,
"events":[
{
"event_name":"Purchase",
"count_min":3,
"count_max":10,
"revenue_min":3.00,
"revenue_max":10.00
},
{
"event_name":"Registration"
}
]
}
],
}
}
]
Event count and revenue ranges are optional parameters that are returned depending on how the advertiser has configured partner access. The following details may be mapped:
- Session
- Session count
- Event
- Event count
- Event revenue
- IAP
- Ad Revenue
- Total Revenue
Count and Revenue range parameters are all optional and are defined as follows:
Parameter | Data type | Default value | Description |
---|---|---|---|
count_min | Number | 1 | The event or session was recorded not less than the specified number of times. |
count_max | Number | Unlimited | The event or session was recorded not more than the specified number of times. |
revenue_min | Number | 0 | The total revenue was at least the specified amount. Amounts are measured in the app's reporting_currency . |
revenue_max | Number | Unlimited | The total revenue did not exceed the specified amount. Amounts are measured in the app's reporting_currency . |
Coarse conversion value fields
Coarse conversion values are used when the volume of conversions isn’t high enough to meet the privacy threshold for providing a fine conversion value. The coarse CV can be low, medium, or high, which act as aggregated buckets for predefined CV values.
[
{
"data": {
"coarse": [
{
"coarse_conversion_value": "low",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0,
"revenue_max": 0.5
}
]
},
{
"coarse_conversion_value": "medium",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0.5,
"revenue_max": 1.0
}
]
},
{
"coarse_conversion_value": "high",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 1.0,
"revenue_max": 50
}
]
}
]
}
}
]
Parameter | Data type | Default value | Description |
---|---|---|---|
coarse_conversion_value | String | Undefined | The level of the coarse conversion value. Can be one of:
|
event_name | String | null | The name of the mapped event. |
count_min | Number | 1 | The event was recorded not less than the specified number of times. |
count_max | Number | Unlimited | The event was recorded not more than the specified number of times. |
revenue_min | Number | 0 | The total revenue recorded for an event was at least the specified amount. Amounts are measured in the app's reporting_currency . |
revenue_max | Number | Unlimited | The total revenue recorded for an event did not exceed the specified amount. Amounts are measured in the app's reporting_currency . |
Response settings fields
[
{
"data": {
"settings": {
"lock_window": {
"time_in_hours": 24
},
"app_store_id":"1125517808",
"updated_at":1617234177,
"reporting_currency":"USD",
}
}
}
]
Field | Data type | Description |
---|---|---|
app_store_id | String | The App Store ID of the app. Matches the app_store_id parameter sent in the request. |
updated_at | Number | The Unix timestamp of the latest mapping change visible to the partner making the request. |
lock_window | Object | Settings related to the Lock window. |
time_in_hours | Number | The length of the lock window in hours. |
reporting_currency | String | The ISO 4217 currency code of the app's reporting currency. Applies to all revenue amounts defined in the mapping schema. |
Full response example
[
{
"data": {
"fine": [
{
"conversion_value":7,
"events":[
{
"event_name":"Registration"
}
]
},
{
"conversion_value":10,
"events":[
{
"event_name":"TutorialComplete"
}
]
},
{
"conversion_value":12,
"events":[
{
"event_name":"Purchase",
"count_min":3,
"count_max":10,
"revenue_min":3.00,
"revenue_max":10.00
},
{
"event_name":"Registration"
}
]
}
],
"coarse": [
{
"coarse_conversion_value": "low",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0,
"revenue_max": 0.5
}
]
},
{
"coarse_conversion_value": "medium",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0.5,
"revenue_max": 1.0
}
]
},
{
"coarse_conversion_value": "high",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 1.0,
"revenue_max": 50
}
]
}
],
"settings": {
"lock_window": {
"time_in_hours": 24
},
"app_store_id":"1125517808",
"updated_at":1617234177,
"reporting_currency":"USD",
}
},
"conversion_window": 1
},
{
"data": {
"coarse": [
{
"coarse_conversion_value": "low",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0,
"revenue_max": 0.5
}
]
},
{
"coarse_conversion_value": "medium",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0.5,
"revenue_max": 1.0
}
]
},
{
"coarse_conversion_value": "high",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 1.0,
"revenue_max": 50
}
]
}
],
"settings": {
"app_store_id":"1125517808",
"updated_at":1617234177,
"reporting_currency":"USD",
}
},
"conversion_window": 2
},
{
"data": {
"coarse": [
{
"coarse_conversion_value": "low",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0,
"revenue_max": 0.5
}
]
},
{
"coarse_conversion_value": "medium",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 0.5,
"revenue_max": 1.0
}
]
},
{
"coarse_conversion_value": "high",
"events": [
{
"event_name": "PURCHASE",
"revenue_min": 1.0,
"revenue_max": 50
}
]
}
],
"settings": {
"app_store_id":"1125517808",
"updated_at":1617234177,
"reporting_currency":"USD",
}
},
"conversion_window": 3
}
]
Response error codes
Error code | Description |
---|---|
400 Bad Request | The Store ID is missing or isn't formatted correctly. |
401 Unauthorized | The network token is missing or not recognized. |
403 Forbidden | The app is recognized, but the Partner sharing requirements weren't met for the requested app. |
404 Not Found | The requested app wasn't found or isn't verified for SKAdNetwork. |
422 Unprocessable Entity | The requested app is recognized and verified by Adjust, but the Conversion Value management feature is not not activated for the app. |
429 Too Many Requests | Requests are throttled on a per-partner/app basis. Adjust recommends fetching updates once per day. |