我们有一个查询,它在EC2实例上运行时返回的响应不同于在本地开发机器上运行时的响应。Facebook查询到广告组的转换在不同的机器上运行时返回不同的结果
的查询是相同的:
[AD_ACT_NUMBER]/adgroupconversions/?appsecret_proof=[APP_SECRET_PROOF]&include_deleted=false&start_time=1393372800&end_time=1393459200&aggregate_days=1&limit=500
在本地dev的机器这个查询返回包括响应:
[{"adgroup_id"=>[SPECIFIC AD GROUP],
"values"=>
[{"start_time"=>1393372800,
"end_time"=>1393459200,
"conversions"=>
[{"action_type"=>"[CONVERSION I CARE ABOUT]",
"object_id"=>"[OBJECT ID]",
"post_click_1d"=>5,
"post_click_7d"=>7,
"post_click_28d"=>7},
...etc
然而在EC2实例中,相同的代码,从而产生相同的查询,返回一个稍微不同的结果。
[{"adgroup_id"=>[SPECIFIC AD GROUP],
"values"=>
[{"start_time"=>1393372800,
"end_time"=>1393459200,
"conversions"=>
[{"action_type"=>"[CONVERSION I CARE ABOUT]",
"object_id"=>"[OBJECT ID]",
"post_click_1d"=>5,
"post_click_7d"=>6,
"post_click_28d"=>6},
...etc
由于某种原因,转换次数少于1次。具有7的那个看起来是正确的,并且匹配 查询被粘贴到https://developers.facebook.com/tools/explorer时的结果以及在Facebook广告管理器中查看报告时的结果。
我们使用ruby和考拉来进行查询。考拉正在使用法拉第,并在运行时对代码进行了撬动,我已经能够确认,当它对Facebook进行原始http查询时,查询确实是相同的。两个查询都使用相同的访问令牌和相同的appsecret_proof。
起初我们认为这可能是一个时区问题,但看到两个请求具有相同的开始和结束时间,我们不知道如何。另外,虽然ec2实例处于UTC并且GMT处于开发框中,但UTC和GMT当前是同一时间。然后,我们检查了Koala或Faraday是否构建了缓存但没有发现任何内容,并且将查询更改为include_deleted = true以打破任何类型的缓存没有任何区别。
我们唯一的想法是,facebook api有一些基于请求IP的缓存,但是这似乎不太可能。
任何人有任何其他想法?
干杯
最大
干杯人,服务器的想法是一个有趣的,没有考虑到。试图抓住一个Facebook的人,如果他们回来,我会把他们的答案放在这里。 – maxdupenois