python - 使用分页从 FB 广告 API 检索异步广告洞察结果

标签 python facebook facebook-ads-api

我正在使用 facebook-python-ads-sdkdescribed 的形式对 FB insights API 进行异步调用.

params = {
    "time_increment": 1,
    "level": "ad",
    "date_preset": "last_28d",
    "breakdowns": "hourly_stats_aggregated_by_advertiser_time_zone",
    "limit": 1000
}

job = AdAccount("id").get_insights_async(params=params)
result_cursor = wait_for_async_job(job)
results = [item for item in result_cursor]

def wait_for_async_job(job):
    for _ in range(TIMEOUT):
        time.sleep(1)
        job = job.remote_read()
        status = job[AdReportRun.Field.async_status]
        if status == "Job Completed":
            return job.get_result()

因此,检索 last_28d 的见解的工作会在几分钟内完成,但是,对结果进行分页最多可能需要一个小时!

这是对异步作业进行分页的正确方法吗?

最佳答案

我发布答案是为了帮助遇到同样问题的其他开发者。

修改:

return job.get_result()

到:

return job.get_result(params={"limit": 1000})

这将以 1000 次而不是默认值 25 次为单位对结果进行分页。

上述更改为我们节省了 30 分钟的运行时间。

关于python - 使用分页从 FB 广告 API 检索异步广告洞察结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45675916/

相关文章:

facebook-ads-api - 如何通过 Facebook api 按天分解见解

python - 如何使用 NLTK 替换二元组?

python - “property”对象不能被解释为整数

facebook - 从搜索中 Conceal Facebook 应用程序

facebook - 用于检测选项卡中用户语言的 FBML 标记

python - Django:如何检查 Q 对象是否为空?

python - 循环期间释放内存

php - 如何避免对我的数据库的大量调用? (MySQL + PHP)

Facebook 广告 API - 自定义受众中的​​电子邮件和哈希