2015-08-09 2 views
1

Я пытаюсь следовать некоторые примеры из Python Facebook Marketing Api, но, когда я бегу:adaccount/reportstats является устаревшим для версии v2.4 и выше

i_async_job = account.get_insights(params={'level': 'adgroup'}, async=True) 
r_async_job = account.get_report_stats(
    params={ 
     'data_columns': ['adgroup_id'], 
     'date_preset': 'last_30_days' 
    }, 
    async=True 
) 

Я получаю

Status: 400 
    Response: 
    { 
     "error": { 
     "message": "(#12) adaccount/reportstats is deprecated for versions v2.4 and higher", 
     "code": 12, 
     "type": "OAuthException" 
     } 
    } 

Даже от Facebook

Я нашел это page, но есть только скрученные примеры.

Есть ли рабочий пример о том, как получить данные от края Insights с помощью API объявлений Python?

ответ

1

Вот полный пример того, как экспортировать некоторые идеи асинхронно из новых Insights конечных точек:

from facebookads import test_config as config 
from facebookads.objects import * 
import time 

account_id = <YOUR_ACCOUNT_ID> 
account_id = 'act_' + str(account_id) 

fields = [ 
    Insights.Field.impressions, 
    Insights.Field.clicks, 
    Insights.Field.actions, 
    Insights.Field.spend, 
    Insights.Field.campaign_group_name, 
] 

params = { 
    'date_preset': Insights.Preset.last_7_days, 
    'level': Insights.Level.adgroup, 
    'sort_by': 'date_start', 
    'sort_dir': 'desc', 
} 

ad_account = AdAccount(account_id) 
job = ad_account.get_insights(fields=fields, params=params, async=True) 
insights = None 

while insights is None: 
    time.sleep(1) 
    job.remote_read() 
    completition = job[AsyncJob.Field.async_percent_completion] 
    print("Percent done: " + str(completition)) 
    if int(completition) is 100: 
     insights = job.get_result(params={'limit': 100}) 


for ad_insight in insights: 
    print(ad_insight) 
Смежные вопросы