过滤Facebook广告活动,以获得Python交付的广告活动
我想获得在给定时间范围内交付的活动列表。我可以得到一个时间范围内所有活动的列表,但需要帮助找出如何过滤它们 这是我目前的代码:过滤Facebook广告活动,以获得Python交付的广告活动,python,facebook,facebook-ads-api,facebook-marketing-api,Python,Facebook,Facebook Ads Api,Facebook Marketing Api,我想获得在给定时间范围内交付的活动列表。我可以得到一个时间范围内所有活动的列表,但需要帮助找出如何过滤它们 这是我目前的代码: 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
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)
这让我得到了这段时间内的所有活动。然而,我只需要那些已经交货的。我们如何做到这一点?我想出了一种方法——使用insight edge 以下是如何:
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,
])
希望能有帮助