2016-12-20 2 views

Antwort

1

Das Problem ist aufgetreten, weil Sie alle Anzeigen unter einem Anzeigenkonto abfragen, obwohl es möglicherweise zu viele enthält.

Lösung lösen: Versuchen Sie zuerst, Kampagnen unter dem Anzeigenkonto abzufragen, dann nur Kampagnen abzufragen, die Einblick (Statistiken) in bestimmten Zeitbereich haben.

Python API wie folgt: (START_DT, end_dt ist account_id, was Sie sollten Eingang)

 total_insights = [] 

     # Get campaign first, then get ad insights 
     account = AdAccount("act_" + str(fb_account_id)) 

     valid_campaigns = [] 
     campaigns_iterator = account.get_campaigns(
      fields=[ 
       Campaign.Field.id, 
      ] 
     ) 
     for campaigns in self.generate_batches(
      campaigns_iterator, 
      BATCH_LIMIT, 
     ): 
      api_batch = self.api.new_batch() 
      for campaign in campaigns: 
       params = { 
        'time_range': { 'since': start_dt, 'until': end_dt }, 
        'level': 'campaign', 
        'filtering': '[{field:"campaign.impressions",operator:"GREATER_THAN",value:0},]', 
        'fields': ['impressions'] 
       } 
       campaign_insights = campaign.get_insights(params=params) 
       if campaign_insights: 
        valid_campaigns.append(campaign) 
      api_batch.execute() 

     for campaign in valid_campaigns: 
      params = { 
       'time_range': { 'since': start_dt, 'until': end_dt }, 
       'level': 'ad', 
       'filtering': '[{field:"ad.impressions",operator:"GREATER_THAN",value:0},]', 
       'fields':['spend','unique_social_clicks', 'inline_link_clicks', 'impressions', 'actions', 'relevance_score', 'ad_id', 'adset_id', 'campaign_id'], 
      } 
      insights_iterator = campaign.get_insights(params=params) 

      # query insights later 
      for ad_insights in self.generate_batches(
       insights_iterator, 
       BATCH_LIMIT, 
      ): 
       api_batch = self.api.new_batch() 
       total_insights.extend(ad_insights) 
       api_batch.execute() 
+0

Vielen Dank für Ihre Hilfe – tupptp

Verwandte Themen