9

Python でクエリを作成したいのですが、すべてのキャンペーンのパフォーマンスの詳細を 1 回のリクエストで取得したいと考えています。

Pythonクエリで以下のグラフAPIリクエストを変換する方法は?

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

以下のクエリを使用してみましたが、Facebook にリクエストを送信するために複数回送信するのは間違った考えであり、Facebook は User を 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 の配信されていないキャンペーンがありlevel=campaign、params も更新します

for insight in self.my_account.get_insights(fields=fields, params=params):
    print insight

クエリ: 更新されたコードを使用して、単一のクエリを使用してすべての配信済みおよび未配信のキャンペーンを取得するにはどうすればよいですか?

4

5 に答える 5