I’m trying to make an API call to pull campaign spend, broken out by country. Efforts so far have only reported spend aggregated for the whole campaign, and values of country are reporting null. Example of my call below (using Twitter’s python packages Client and enum).
from datetime import datetime, timedelta
from twitter_ads.client import Client
from twitter_ads.http import Request
from twitter_ads.enum import METRIC_GROUP
dateRequestStart = datetime.strptime((datetime.now()).strftime(’%Y-%m-%d’) + ‘T00:00:00Z’, “%Y-%m-%dT%H:%M:%SZ”)
dateRequestEnd = datetime.strptime((datetime.now()).strftime(’%Y-%m-%d’) + ‘T00:00:00Z’, “%Y-%m-%dT%H:%M:%SZ”)
ConsumerKey = ‘XXXXXXXXXXXXXXXXXX’
ConsumerSecret = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’
AccessToken= ‘XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’
AccessTokenSecret = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’
AccountID = ‘XXXXXXXX’
client = Client(ConsumerKey, ConsumerSecret, AccessToken, AccessTokenSecret)
account = client.accounts(AccountID)
campaign_list = list(account.campaigns())
metric_groups = [METRIC_GROUP.BILLING]
for i in campaign_list:
response = i.stats(metric_groups, segment = ‘LOCATION.COUNTRY’, granularity=‘DAY’, start_time = dateRequestStart, end_time = dateRequestEnd)
for i in response:
print(i)