对于v2.4及更高版本,不推荐使用adaccount / reportstats

时间:2015-08-09 23:25:20

标签: python facebook facebook-ads-api

我试图关注Python Facebook Marketing Api中的一些例子,但是,当我跑步时:

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,但只有卷曲的例子。

是否有关于如何使用Python Ads API从Insights边缘获取数据的工作示例?

1 个答案:

答案 0 :(得分: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)