我的团队最近从Parse迁移到了Facebook Analytics . 我们知道Facebook事件在30天后被删除,因此我们计划将它们导出然后将它们存储在我们自己的Parse Server中 .
当我们尝试从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
我们将不胜感激任何有关出错的建议 .
2 回答
原来这个问题不是来自我们的代码,而是Facebook . 如果使用Facebook Analytics,请注意出口工作往往会每隔几个月随机开始失败 . 最好的办法是查看Facebook bugs列表,看看是否能看到与您的问题相关的内容 .
导出API不会返回当天的任何数据 . 例如,星期一的数据将在星期二凌晨12:00(UTC-8)之前无法使用 .
你可能想提前一天尝试制作
$START_TS
和$END_TS
. 这样,您的cron作业将每2小时运行一次,并在前一天检索2小时的事件(例如,周二下午4:00在周一下午2:00-4:00获取所有事件 . )