Неожиданные / непредсказуемые результаты при пакетных запросах к Facebook Marketing Insights API

У меня есть скрипт 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+) он начнется с получения правильных данных, а затем внезапно начнет получать данные для всех, только для некоторых или ни для одной из кампаний, что довольно непредсказуемо.

Я не получал кодов ошибок или предупреждений о дросселировании. Мой вопрос: есть ли где-то предел, которого мне не хватает, либо на количество разрешенных дат, либо на количество пакетных запросов? Это довольно странно, потому что я отправляю всего три пакетных запроса для всех своих данных.




Ответы (1)


Нашел проблему! После поиска закономерностей я понял, что для каждой кампании было извлечено не более 51 даты.

Абсолютно не удалось найти подробную информацию об этом скрытом ограничении в Интернете - если у кого-то есть дополнительная информация, пожалуйста, добавьте к этому.

Изменить: с тех пор понял, что есть система разбивки на страницы, которую я пропустил в документации.

person Madhavi    schedule 22.12.2017