@deansharedemo: Let’s go through this step-by-step. In this example we’ll request stats for iOS devices.
1. Create the job using the POST /1/stats/jobs/accounts/:account_id endpoint
$ twurl -X POST -H https://ads-api.twitter.com "/1/stats/jobs/accounts/18ce54h6gph?end_time=2017-04-25&entity=CAMPAIGN&entity_ids=86onf&granularity=TOTAL&metric_groups=ENGAGEMENT&placement=ALL_ON_TWITTER&start_time=2017-04-24&segmentation_type=DEVICES&platform=0"
{
"request": {
"params": {
"start_time": "2017-04-23T23:00:00Z",
"segmentation_type": "DEVICES",
"entity_ids": [
"86onf"
],
"end_time": "2017-04-24T23:00:00Z",
"placement": "ALL_ON_TWITTER",
"granularity": "TOTAL",
"entity": "CAMPAIGN",
"platform": "0",
"metric_groups": [
"ENGAGEMENT"
]
}
},
"data_type": "job",
"data": {
"start_time": "2017-04-23T23:00:00Z",
"segmentation_type": "DEVICES",
"url": null,
"id_str": "858392488087756801",
"entity_ids": [
"86onf"
],
"end_time": "2017-04-24T23:00:00Z",
"country": null,
"placement": "ALL_ON_TWITTER",
"id": 858392488087756801,
"expires_at": null,
"account_id": "18ce54h6gph",
"status": "PROCESSING",
"granularity": "TOTAL",
"entity": "CAMPAIGN",
"created_at": "2017-04-29T18:48:11Z",
"platform": "0",
"updated_at": "2017-04-29T18:48:11Z",
"metric_groups": [
"ENGAGEMENT"
]
}
}
Note: Notice the use of segmentation_type=DEVICES&platform=0, as stated in my previous post.
2. Use the id_str from step 1 in a request to the GET /1/stats/jobs/accounts/:account_id endpoint
$ twurl -H https://ads-api.twitter.com "/1/stats/jobs/accounts/18ce54h6gph?job_ids=858392488087756801"
{
"request": {
"params": {
"job_ids": [
858392488087756801
]
}
},
"data_type": "job",
"next_cursor": null,
"data": [
{
"start_time": "2017-04-23T23:00:00Z",
"segmentation_type": "DEVICES",
"url": "https://ton.twimg.com/advertiser-api-async-analytics/7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz",
"id_str": "858392488087756801",
"entity_ids": [
"86onf"
],
"end_time": "2017-04-24T23:00:00Z",
"country": null,
"placement": "ALL_ON_TWITTER",
"id": 858392488087756801,
"expires_at": "2017-05-01T18:48:14Z",
"account_id": "18ce54h6gph",
"status": "SUCCESS",
"granularity": "TOTAL",
"entity": "CAMPAIGN",
"created_at": "2017-04-29T18:48:11Z",
"platform": "0",
"updated_at": "2017-04-29T18:48:14Z",
"metric_groups": [
"ENGAGEMENT"
]
}
]
}
3. Once you see "status": "SUCCESS", download the .gz file from the listed url
$ wget https://ton.twimg.com/advertiser-api-async-analytics/7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz
--2017-04-29 11:52:54-- https://ton.twimg.com/advertiser-api-async-analytics/7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz
Resolving ton.twimg.com... 104.244.46.135, 104.244.46.71
Connecting to ton.twimg.com|104.244.46.135|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 676 [application/gzip]
Saving to: '7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz'
7QmZa9Wpf4L34S4Ne301N_O0kufZb 100%[=================================================>] 676 --.-KB/s in 0s
2017-04-29 11:52:55 (40.3 MB/s) - '7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz' saved [676/676]
4. gunzip the file to see the results
$ gunzip 7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json.gz
You can either open the .json file or output to the terminal:
$ cat 7QmZa9Wpf4L34S4Ne301N_O0kufZby75bWPfUGE3QochVK4qQArIkGgnlPx7V3tRpzRd3ziyf_tpMadmJacZ3YoHit9MP35xPeF6kJX8q1-js_u4OcmENk4p5nnuebtV.json
{
"data_type": "stats",
"time_series_length": 1,
"data": [
{
"id": "86onf",
"id_data": [
{
"segment": {
"segment_name": "iPad 3",
"segment_value": "1x"
},
"metrics": {
"impressions": [
1
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 5C",
"segment_value": "22"
},
"metrics": {
"impressions": [
230
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
2
],
"clicks": [
2
],
"card_engagements": null,
"replies": null,
"url_clicks": [
1
],
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPod Touch",
"segment_value": "1u"
},
"metrics": {
"impressions": [
5
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 6S Plus",
"segment_value": "4r"
},
"metrics": {
"impressions": [
163
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
3
],
"clicks": [
3
],
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 6 Plus",
"segment_value": "47"
},
"metrics": {
"impressions": [
114
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 6",
"segment_value": "46"
},
"metrics": {
"impressions": [
685
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
3
],
"clicks": [
3
],
"card_engagements": null,
"replies": null,
"url_clicks": [
1
],
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 5S",
"segment_value": "21"
},
"metrics": {
"impressions": [
14
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 6S",
"segment_value": "4q"
},
"metrics": {
"impressions": [
733
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
3
],
"clicks": [
3
],
"card_engagements": null,
"replies": null,
"url_clicks": [
1
],
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 7",
"segment_value": "5c"
},
"metrics": {
"impressions": [
445
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
1
],
"clicks": [
1
],
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPad mini",
"segment_value": "1z"
},
"metrics": {
"impressions": [
2
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPad 2",
"segment_value": "1w"
},
"metrics": {
"impressions": [
1
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 7 Plus",
"segment_value": "5e"
},
"metrics": {
"impressions": [
213
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 5",
"segment_value": "1t"
},
"metrics": {
"impressions": [
50
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
1
],
"clicks": [
1
],
"card_engagements": null,
"replies": null,
"url_clicks": [
1
],
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 4",
"segment_value": "1r"
},
"metrics": {
"impressions": [
3
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPad Air 2",
"segment_value": "48"
},
"metrics": {
"impressions": [
1
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "Unknown",
"segment_value": "0"
},
"metrics": {
"impressions": [
18
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone 4S",
"segment_value": "1s"
},
"metrics": {
"impressions": [
11
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": null,
"clicks": null,
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "iPhone SE",
"segment_value": "5h"
},
"metrics": {
"impressions": [
154
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
3
],
"clicks": [
3
],
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
}
]
}
],
"request": {
"params": {
"start_time": "2017-04-23T23:00:00Z",
"segmentation_type": "DEVICES",
"entity_ids": [
"86onf"
],
"end_time": "2017-04-24T23:00:00Z",
"country": null,
"placement": "ALL_ON_TWITTER",
"granularity": "TOTAL",
"entity": "CAMPAIGN",
"platform": "0",
"metric_groups": [
"ENGAGEMENT"
]
}
}
}
Notice that we do not see anything related to location in the response above.
When making a request with segmentation_type=LOCATION we see the following (after following the same steps as before):
$ twurl -X POST -H https://ads-api.twitter.com "/1/stats/jobs/accounts/18ce54h6gph?end_time=2017-04-25&entity=CAMPAIGN&entity_ids=86onf&granularity=TOTAL&metric_groups=ENGAGEMENT&placement=ALL_ON_TWITTER&start_time=2017-04-24&segmentation_type=LOCATIONS"
{
"data_type": "stats",
"time_series_length": 1,
"data": [
{
"id": "86onf",
"id_data": [
{
"segment": {
"segment_name": "United States",
"segment_value": "96683cc9126741d1"
},
"metrics": {
"impressions": [
474
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
4
],
"clicks": [
4
],
"card_engagements": null,
"replies": null,
"url_clicks": null,
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "United Kingdom",
"segment_value": "6416b8512febefc9"
},
"metrics": {
"impressions": [
2579
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
20
],
"clicks": [
20
],
"card_engagements": null,
"replies": null,
"url_clicks": [
7
],
"carousel_swipes": null
}
},
{
"segment": {
"segment_name": "Ireland",
"segment_value": "ea679934779f45c7"
},
"metrics": {
"impressions": [
761
],
"tweets_send": null,
"qualified_impressions": null,
"follows": null,
"app_clicks": null,
"retweets": null,
"likes": null,
"engagements": [
2
],
"clicks": [
2
],
"card_engagements": null,
"replies": null,
"url_clicks": [
1
],
"carousel_swipes": null
}
}
]
}
],
"request": {
"params": {
"start_time": "2017-04-23T23:00:00Z",
"segmentation_type": "LOCATIONS",
"entity_ids": [
"86onf"
],
"end_time": "2017-04-24T23:00:00Z",
"country": null,
"placement": "ALL_ON_TWITTER",
"granularity": "TOTAL",
"entity": "CAMPAIGN",
"platform": null,
"metric_groups": [
"ENGAGEMENT"
]
}
}
}