2016-04-07 5 views
0

Ich muss mich jeden Tag anmelden und einen Anzeigenbericht exportieren - wie automatisiere ich das?Wie automatisiere ich script exporting reports im Facebook Power Editor?

Ich möchte ein Skript einen CSV eines Berichts auf meinem Computer jeden Morgen herunterladen.

Kann ich Curl verwenden? Habe ich , um die API zu verwenden? Welche Möglichkeiten habe ich dafür?

Facebook kann den Bericht per E-Mail senden, aber er sendet den Bericht nicht per E-Mail, sondern per E-Mail an den Bericht.

Lassen Sie sich diese noch nicht in der Lage zu testen, aber es sieht aus wie this guy used to be able to use wget to pull a report (aber jetzt funktioniert es nicht)

Edit: Ich versuche, dies mit curl zu tun, bevor ich eine App-ID erstellen ich versuche nur, das aus der graphischen Darstellung App erzeugen mit einem Benutzer-Token zu tun, und es scheint nicht zu funktionieren:

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

ich sehe in der Dokumentation anhand von Beispielen curl, wie verwende ich curl einen Bericht zum Download ?

+1

Ja, Sie müssen die API verwenden – WizKid

+0

Um die API zu verwenden, heißt es, ich muss ein Entwicklerkonto erstellen und ich muss eine App erstellen, die auf einem Webserver ausgeführt wird. Ich möchte nur einen Bericht herunterladen, keine Bewerbung schreiben. – red888

+0

Jemand, den Sie authentifizieren müssen, dass Sie dann eins herunterladen. Das geschieht mit Apps. – WizKid

Antwort

1

Ich bin mit FB-API arbeiten, um zu versuchen, die Berichte zu automatisieren ...

Zuerst mit Python erzeugen, um den Bericht mit den Feldern ich brauche, Code:

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

Der letzte 'Druck' zeigt die Report_ID.

Dann mit CURL müssen Sie die REPORT_ID und access_token lokal exportieren, Locke:

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 

Ich hoffe, das hilft!