Я использую маркетинговый API Facebook, чтобы извлечь мои рекламные данные и затем сохранить их в Google BigQuery, но, очевидно, мой сценарий игнорирует некоторые рекламные наборы, и я не нашел способа это исправить!Вот мой код:
Найдите ниже мой скрипт на python:
`for delta in range(1000)[20:28]:
process_date = (datetime.datetime.today()+datetime.timedelta(days=-delta)).strftime('%Y-%m-%d')
date_compact = process_date.replace('-', '')
print('processing date %s, delta %s' % (process_date, delta))
params['time_range']['since'] = process_date
params['time_range']['until'] = process_date
stats = AdAccount(ad_account_id).get_insights(
fields=fields,
params=params,
)
ad_list = list()
for ad_insight in stats:
ad_list.append(ad_insight)
storage_client = storage.Client(project='project')
bucket = storage_client.get_bucket('project')
blob = bucket.blob('fb/fb_%s.csv' % date_compact)
header_line = ','.join(['date']+fields)
content_lines = [header_line]
for ad in ad_list:
ad_line = ','.join([process_date]+['"%s"'%str(ad[field].encode('latin9').decode('latin9')).replace('"', "'") for field in fields])
content_lines.append(ad_line)
blob.upload_from_string('\n'.join(content_lines))
bq_client = bigquery.Client(project='project')
job_config = bigquery.LoadJobConfig()
job_config.write_disposition = 'WRITE_TRUNCATE'
job_config.field_delimiter = ','
job_config.skip_leading_rows = 1
job_config.source_format = 'CSV'
schema = [bigquery.schema.SchemaField(name=field, field_type='STRING') for field in ['date']+fields]
job_config.schema = schema
dataset_id = '2_digital'
destination_table = 'fb_ad_stats_%s' % date_compact
table_ref = bq_client.dataset(dataset_id).table(destination_table)
result = bq_client.load_table_from_uri(source_uris='gs://project/fb/fb_%s.csv'%date_compact, destination=table_ref, job_config=job_config).result()
В результате я ожидаю увидеть все объявления и кампании со всеми деталями (количество кликов, показов).и потратить)