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()
Vielen Dank für Ihre Hilfe – tupptp