我想用Python编写查询,我希望在单个请求中提供所有广告系列的性能详细信息。

如何在Python查询中转换下面的图API请求?

/<version>/act_<ACT_ID>/campaigns?fields=insights.fields(actions_results)

我尝试使用下面的查询,但是多次发送请求以将请求发送到Facebook是错误的主意,并且Facebook阻止了用户30分钟。
fields = [Insights.Field.cpm,
          Insights.Field.cpp]

class Fb_insights(object):

    def __init__(self, app_id, app_secret, access_token):
        FacebookAdsApi.init(app_id, app_secret, access_token)

        # Add after FacebookAdsApi.init
        me = AdUser(fbid='me')
        self.my_account = me.get_ad_accounts()[0]

    def campaign_reports(self, since, until):
        params = {
           'level': Insights.Level.campaign,
           'time_range': {
                'since': since,
                'until': until,
            },
        }

        for campaign in self.my_account.get_campaigns():
            for stat in campaign.get_insights(fields=fields,
                                                  params=params):
                print(stat)

不好的是,我通过为每个广告系列调用“get_insights()”来发送请求。

更新

我还尝试直接获取见解,下面的代码仅返回1个广告系列详细信息,而我有1个事件的广告系列和87个未分发的广告系列,还更新了params中的level=campaign
for insight in self.my_account.get_insights(fields=fields, params=params):
    print insight

查询:通过使用更新的代码,如何使用单个查询获取所有已转换和未转换的广告系列?

最佳答案

看一看https://developers.facebook.com/docs/graph-api/using-graph-api部分“进行嵌套的请求”。

通过调用以下api,您可以使用字段扩展通过帐户的单个查询来了解所有广告系列的见解:

https://graph.facebook.com/v2.10/YOUR_ACCOUNT_ID/campaigns?fields=name,status,insights{reach,impressions,clicks}&access_token=YOUR_TOKEN

字段扩展允许您将字段请求设置为节点。在上面的示例中,我获得了按广告系列分组的帐户中所有广告系列的数据分析,然后使用“数据分析{覆盖率,展示次数,点击次数}”,可以选择节点级别的字段。

编辑:从URL中删除了level = campaign,因为端点/campaigns已经按营销事件对数据进行了分组

关于python - 如何通过单一查询+ Facebook Marketing api获取所有广告系列的见解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34607609/

10-11 08:56