如何使用Facebook营销api在一次查询中获得所有广告的洞察力

2024-04-25 15:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python编写查询,我想在单个请求或多个请求中获得所有ads性能详细信息。 我试过使用下面的查询,但多次发送请求到Facebook是错误的想法,而且Facebook会阻止用户30分钟

    my_app_id = 'my_app_id'
    my_app_secret = 'my_app_secret'
    my_access_token = 'my_token'
    FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
    my_account = AdAccount('act_')
    ad_campaign_list = my_account.get_campaigns(fields=[Campaign.Field.name,Campaign.Field.id])
        for campaign in ad_campaign_list:
        campaign_index=Campaign(campaign["id"])
        ad_setlist = campaign_index.get_ad_sets(fields=[AdSet.Field.name,AdSet.Field.id])
        for ad_set in ad_setlist:
            print(ad_set)
            ad_set_index = AdSet(ad_setlist["id"])
            ad_list = ad_set_index.get_ads(fields=[Ad.Field.name,Ad.Field.id])
            for ad in ad_list:
                print(ad)   

我有一个错误,比如

  Message: Call was not successful
  Method:  GET
  Path:    https://graph.facebook.com/v9.0/act_/ad
  Params:  {'fields': 'name,id', 'summary': 'true'}

  Status:  400
  Response:
    {
      "error": {
        "message": "(#17) User request limit reached",
        "type": "OAuthException",
        "is_transient": true,
        "code": 17,
        "error_subcode": 2446079,
        "fbtrace_id": "Al42-tg1iVmvfE79RVrGDJW"
      }
    }

我想习惯了

    my_app_id = 'my_app_id'
    my_app_secret = 'my_app_secret'
    my_access_token = 'my_token'
    FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
    my_account = AdAccount('act_')
    ad = my_account.get_ads(fields=[Ad.Field.name,Ad.Field.id])
    print(ad)

但我并没有把我所有的广告都拿到手


Tags: nametokenidappfieldfieldsgetsecret
1条回答
网友
1楼 · 发布于 2024-04-25 15:13:56

使用Graph API可以执行的请求数量有限。要了解有关限制的更多信息,check this link,但总而言之,您可以进行以下数量的调用:

  • 一小时内通话=200*用户数

为了避免这个问题,我建议您不要像现在这样传递字段,而是像这样传递它们:

report = facebook_acc.get_campaigns(fields=['name,adsets{id,ads{id,name}}'])

这样你可以在一次查询中获得所有的广告信息

相关问题 更多 >