According to ads analytics best practices: https://dev.twitter.com/ads/analytics/best-practices the data is gathered real-time and should be available within secconds.
I have created a post on 30-05-2016 18:03 and few minutes later another user replied to that tweet and retweeted it.
ads.twitter.com has shown those:
Total engagements 2
Replies 1
Retweets 1
I used twurl to try gathering the same statistics using:
twurl -H ads-api.twitter.com “/1/stats/accounts/18ce54bg7zc?granularity=TOTAL&entity=ORGANIC_TWEET&entity_ids=11111111111111111&start_time=2016-05-28T15:00:00Z&end_time=2016-06-01T16:00:00Z&placement=ALL_ON_TWITTER&metric_groups=ENGAGEMENT”
Which returned null for all values except for impressions (8). Using granularity of HOUR or DAY had similar results(at first I used HOUR aiming just for the last hour, but I thought I might be not getting correct timeframe, so to made sure I used total with start/end time far exceeding the one I was aiming for).
About 18:43, so around 30 minutes after the post was made using exactly the same twurl command returned:
"impressions":[10],
"qualified_impressions":null,
"follows":null,
"app_clicks":null,
"retweets":[1],
"likes":null,
"engagements":[2],
"clicks":[1],
"card_engagements":null,
"replies":null,
"url_clicks":null,
"carousel_swipes":null
Which included the reply from before, but was still missing replies(how come?).
What is more, now, (18:55) I ran exactly the same twurl again, which returned:
"retweets":[2],
"engagements":[3],
"clicks":[1]
But there were no new retweets since then. Both twitter.com and ads.twitter.com show that there was only single retweet. Obviously the analytics are wrong.
What is going on? How to avoid wrong data? Changing granuality to daily doesn’t help:
twurl -H ads-api.twitter.com “/1/stats/accounts/18ce54bg7zc?granularity=HOUR&entity=ORGANIC_TWEET&entity_ids=111111111111111&start_time=2016-05-30T16:00:00Z&end_time=2016-05-30T17:00:00Z&placement=ALL_ON_TWITTER&metric_groups=ENGAGEMENT”
{"data_type":"stats","time_series_length":1,"data":[{"id":"11111111111111","id_data":[{"segment":null,"metrics":{"impressions":[13],"qualified_impressions":null,"follows":null,"app_clicks":null,"retweets":[2],"likes":null,"engagements":[3],"clicks":[1],"card_engagements":null,"replies":null,"url_clicks":null,"carousel_swipes":null}}]}],"request":{"params":{"start_time":"2016-05-30T16:00:00Z","segmentation_type":null,"entity_ids":[737313523202699264],"end_time":"2016-05-30T17:00:00Z","country":null,"placement":"ALL_ON_TWITTER","granularity":"HOUR","entity":"ORGANIC_TWEET","platform":null,"metric_groups":["ENGAGEMENT"]}}}
Still no replies and retweets count is wrong. 16-17 is used instead 18-19 because of timezone difference.