我如何 automate\script 在 facebook power editor 中导出报告?

How do I automate\script exporting reports in facebook power editor?

我必须每天登录并导出广告报告 - 如何自动执行此操作?

我想要一个脚本,每天早上将一份报告的 csv 下载到我的电脑。

我可以使用 curl 吗?我使用API吗?我有什么选择?

Facebook 可以安排通过电子邮件发送报告,但它实际上并没有通过电子邮件发送报告,它只是通过电子邮件向报告发送 link。

还没来得及测试,但看起来像this guy used to be able to use wget to pull a report(但现在不行了)

编辑:我正在尝试使用 curl 来做到这一点 在我创建应用程序 ID 之前,我尝试使用从图形应用程序生成的用户令牌来执行此操作,但它似乎不起作用:

curl 'https://www.facebook.com/ads/ads_insights/export_report?MYREPORTNAME&format=csv&access_token=MYACCESSTOKEN'

我在使用 curl 的文档示例中看到,如何使用 curl 下载报告?

您可以试用最近发布的工具 Facebook 广告管理器 Excel。它允许您一键刷新报告。

请看:https://www.facebook.com/business/help/229431170840352

我正在与 FB 合作 API 尝试自动化报告...

首先用python生成包含我需要的字段的报告,代码:

from facebookads.api import FacebookAdsApi
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.campaign import Campaign
from facebookads.adobjects.adsinsights import AdsInsights
from facebookads.adobjects.adreportrun import AdReportRun
import time

my_app_id = 'your_app_id'
my_app_secret = 'your_app_secret'
my_access_token = 'you_access_token'

FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
campaign = Campaign(your_campaig_id)
campaign.remote_read(fields=[
    Campaign.Field.effective_status 
])

params = {
    'level': AdsInsights.Level.ad,
    'fields': [
        AdsInsights.Field.account_name,
        AdsInsights.Field.account_id,
        AdsInsights.Field.campaign_name,
        AdsInsights.Field.campaign_id,
        AdsInsights.Field.impressions,
        AdsInsights.Field.spend,
        AdsInsights.Field.unique_clicks,
        AdsInsights.Field.unique_inline_link_clicks,
        AdsInsights.Field.total_actions,
        AdsInsights.Field.total_unique_actions,
        AdsInsights.Field.unique_actions,
        AdsInsights.Field.ad_name,
        AdsInsights.Field.ad_id,
        AdsInsights.Field.reach,
        AdsInsights.Field.video_p100_watched_actions,
        AdsInsights.Field.video_p25_watched_actions,
        AdsInsights.Field.video_p50_watched_actions,
        AdsInsights.Field.video_p75_watched_actions,
        AdsInsights.Field.video_p95_watched_actions,                
    ],  
    'time_range': {'since':'2017-08-01','until':'2017-08-01'},
}

async_job = campaign.get_insights(params=params, async=True)
async_job.remote_read()
while async_job[AdReportRun.Field.async_percent_completion] < 100:
    time.sleep(1)
    async_job.remote_read()    
time.sleep(1)

print(async_job.get_result())
print async_job.remote_read()

最后的'print'表示report_id。

然后使用 CURL,您需要 report_id 和 access_token 才能在本地导出,curl:

curl -G -d 'report_run_id=you_report_id' -d 'format=csv' 'https://www.facebook.com/ads/ads_insights/export_report?access_token=your_access_token' -o ReportCURL.csv

希望对您有所帮助!