У меня есть скрипт Google Apps, который отправляет пакетные запросы в Facebook Marketing API (Insights). Я получаю установки с мобильных устройств, рекламные расходы в день в нескольких кампаниях. Однако результаты неожиданные для больших объемов данных.
Каждый относительный URL-адрес в пакете запрашивает разбивку по дням для одной кампании Facebook следующим образом:
{"method":"GET",
"relative_url":"<CAMPAIGN_ID>/insights?fields=actions,spend&time_range={'since':'yyyy-mm-dd','until':'yyyy-mm-dd'}&time_increment=1"}
Для заданного диапазона дат я создаю URL-адрес пакетного запроса для n
таких кампаний, как показано ниже:
var fbCampaigns = [ C1, C2, C3 ... ];
var batchRequests = [];
for(var i=0; i<fbCampaigns.length; i++) {
// URL encoded version of the relative URL above
batchRequests.push("%7B%22method%22%3A%22GET%22%2C%22relative_url%22%3A%22"
+ fbCampaigns[i]+"%2Finsights%3Ffields%3Dactions%2Ccampaign_id%2Cspend%26"
+ "time_range%3D%7B%27since%27%3A%27"+start+"%27%2C%27until%27%3A%27"
+ end+"%27%7D%26time_increment%3D1%22%7D");
}
var url = "https://graph.facebook.com/v2.11/?batch=["
+ batchRequests.join(",")
+ "]&access_token="+fbToken;
Поскольку URL-адрес становился слишком длинным, я разделил массив кампании на части по 5 и выполнил вышеуказанное для каждой части отдельно.
Это отлично подходит для одной даты или короткого диапазона дат. Однако для гораздо больших диапазонов дат (100+) он начнется с получения правильных данных, а затем внезапно начнет получать данные для всех, только для некоторых или ни для одной из кампаний, что довольно непредсказуемо.
Я не получал кодов ошибок или предупреждений о дросселировании. Мой вопрос: есть ли где-то предел, которого мне не хватает, либо на количество разрешенных дат, либо на количество пакетных запросов? Это довольно странно, потому что я отправляю всего три пакетных запроса для всех своих данных.