我想获得在给定时间范围内交付的广告系列列表。我可以在一个时间范围内获得所有广告系列的列表 - 但需要帮助确定如何过滤它们。
这是我目前的代码:
FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
my_account = objects.AdAccount('act_XXXXXXXXXXXXX')
print my_account
today = datetime.date.today()
threeDaysAgo = today - timedelta(days=3)
#get list of campaigns from FB
cparams = {
#'effective_status':['ACTIVE'],
'time_range': {
'since': threeDaysAgo.__str__(),
'until': today.__str__()
}
}
clist = my_account.get_campaigns(params=cparams)
这会在时间范围内获取所有广告系列。但是,我只需要获得已经交付的那些。我们怎么做?
答案 0 :(得分:0)
我想出了一种方法 - 使用洞察力。
以下是:
fields = [
Insights.Field.campaign_id,
Insights.Field.campaign_name,
Insights.Field.spend,
]
today = datetime.date.today()
threeDaysAgo = today - timedelta(days=3)
params = {
'time_range': {'since': threeDaysAgo.__str__(), 'until': today.__str__()},
'level': 'campaign',
'limit': 100
}
insights = my_account.get_insights(fields=fields, params=params)
然后我们可以循环获取洞察力 - 获取广告系列ID:
for i in insights:
print "Processing ..." + i['campaign_id']
cid = i['campaign_id']
然后以我们想要的任何方式处理广告系列和数据......
campaign = Campaign(cid + "")
和......
campaign.remote_read(fields=[
Campaign.Field.name,
Campaign.Field.effective_status,
Campaign.Field.objective,
])
希望它有所帮助。