我如何 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。它允许您一键刷新报告。
我正在与 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
希望对您有所帮助!
我必须每天登录并导出广告报告 - 如何自动执行此操作?
我想要一个脚本,每天早上将一份报告的 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。它允许您一键刷新报告。
我正在与 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
希望对您有所帮助!