问题描述
我正在尝试为我的Facebook营销数据建立管道,我正在使用官方的Facebook商业python sdk api。我知道在获取任何数据之前,我必须知道它是否适合其层次结构,因此当我查看文档时,我发现我必须以广告集的级别获取数据以获取广告状态,即使我尝试在文档中提及的Effective_status,它没有用,也尝试了configure_status但没有结果。我也知道该状态可以在params部分中使用。官方文档对我没有帮助。 代码:
import os
import pandas as pd
import numpy as np
from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.adreportrun import AdReportRun
from facebook_business.api import FacebookAdsApi
from io import StringIO
import datetime as dt
import json
import pandas as pd
import requests
import sys
pd.options.display.max_columns = None
pd.options.display.max_rows = None
#configured_status
today=dt.datetime.today().strftime("%Y-%m-%d")
access_token =token
params = {'level': 'adset','time_range': {'since': '2020-04-01','until':today}}
fields = ['clicks','impressions','spend','reach','campaign_id','effective_status']
FacebookAdsApi.init(access_token=access_token)
account = AdAccount('act_#############' )
i_async_job = account.get_insights(fields=fields,params=params,is_async=True)
while True:
job = i_async_job.api_get()
if job[AdReportRun.Field.async_status] == 'Job Completed':
break
reportid = json.loads(str(i_async_job).replace('\n','').replace('<AdReportRun> ',''))
report_id = reportid['report_run_id']
response = requests.get('https://www.facebook.com/ads/ads_insights/export_report/?report_run_id=' + report_id + '&name=myreport&format=csv&locale=en_GB&access_token=' + access_token)
response = StringIO(response.text)
df = pd.read_csv(response,encoding='utf8')
df.head()
我没有在字段中添加有效的状态或configure_status,但是当我在此处添加时,输出错误:
FacebookRequestError:
Message: Call was not successful
Method: POST
Path: https://graph.facebook.com/v8.0/act_#########/insights
Params: {'level': 'adset','time_range': '{"since":"2020-04-01","until":"2020-08-31"}','fields': '["clicks","impressions","spend","reach","campaign_id","effective_status"]'}
Status: 400
Response:
{
"error": {
"message": "(#100) effective_status is not valid for fields param. please check https://developers.facebook.com/docs/marketing-api/reference/ads-insights/ for all valid values","type": "OAuthException","code": 100,"fbtrace_id":******************
}
}
非常感谢您的帮助。 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)