2016-04-07 2 views
0

Мне нужно каждый день регистрировать и экспортировать отчет о рекламе - как мне его автоматизировать?Как автоматизировать script экспорт отчетов в редакторе ресурсов facebook?

Я хочу, чтобы сценарий загружал csv отчета на мой компьютер каждое утро.

Могу ли я использовать завиток? У меня есть, чтобы использовать API? Какие у меня варианты для этого?

Facebook может планировать рассылку по электронной почте отчета, но на самом деле он не отправляет сообщение по электронной почте, а просто передает ссылку на отчет.

Не удалось проверить это, но она выглядит this guy used to be able to use wget to pull a report (но теперь он не работает)

Edit: Я пытаюсь сделать это с помощью локонов Перед тем, как создать идентификатор приложения Я пытаюсь просто сделать это с помощью маркеров пользователя генерируется из приложения графа и не похоже, работают:

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

Я вижу в примерах документации с использованием локона, как использовать локон, чтобы загрузить отчет ?

+1

Да, вы должны использовать API – WizKid

+0

Чтобы использовать API, он говорит, что мне нужно создать учетную запись разработчика, и мне нужно создать приложение, которое будет запущено на веб-сервере. Я просто хочу загрузить отчет, не записывая приложение. – red888

+0

Кому-то вам нужно пройти аутентификацию, чтобы потом загрузить его. Это делается с помощью приложений. – WizKid

ответ

1

Я работаю с FB API, чтобы попытаться автоматизировать отчеты ...

Сначала с питоном создать отчет с полями, мне нужно, код:

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() 

Последний «печать» показывает report_id.

Затем с CURL вам нужно REPORT_ID и access_token экспортировать локально, локон:

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 

Я надеюсь, что это помогает!

Смежные вопросы