我的团队最近从Parse迁移到Facebook Analytics。我们知道Facebook事件会在30天后删除,因此我们计划将其导出,然后将其存储在我们自己的Parse服务器中。
当我们尝试从Facebook导出分析时,我们遇到了问题。问题是每次我们从Facebook获取导出时,文件都是空的。由于我们的产品是实时的,因此肯定会记录事件,我们可以在Facebook仪表板中看到发生的事件。
导出将位于每 2 小时运行一次的 cron 作业中,并检索过去 2 小时的事件。
生成请求:
GENERATE_URL="https://graph.facebook.com/v2.6/"$APP_ID"/analytics_app_events_exports"
curl -sS --request POST $GENERATE_URL -F access_token=$ACCESS_TOKEN -F start_ts=$START_TS -F end_ts=$END_TS
查询请求:
QUERY_URL="https://graph.facebook.com/v2.6/"$ID"?access_token="$ACCESS_TOKEN
curl -sS $QUERY_URL
查询响应:
{
"start_ts": "2016-05-25T02:30:21+0000",
"end_ts": "2016-05-25T04:30:21+0000",
"status": "COMPLETED"
...
}
下载请求:
DOWNLOAD_URL="https://lookaside.fbsbx.com/analytics/app_events_export/download?access_token="$ACCESS_TOKEN"&id="$ID"&filename="$FILENAME
curl -sS $DOWNLOAD_URL
参考FB文档:https://developers.facebook.com/docs/analytics/export
我们将不胜感激任何关于问题的建议。
导出 API 不会返回当天的任何数据。例如,星期一的数据要到星期二上午 12:00 (UTC-8) 才能提供。
您可能想尝试提前一天制作$START_TS
和$END_TS
。这样,您的 cron 作业将每 2 小时运行一次,并在前一天检索 2 小时的事件(例如,获取周二下午 2:00-4:00 的所有事件。
事实证明,问题不是来自我们的代码,而是来自Facebook。如果使用Facebook Analytics,请注意,导出作业往往每隔几个月就会随机开始失败。最好的办法是浏览Facebook错误列表,看看你是否能看到与你的问题相关的内容。