Ограничение количества обращений в API Graph

Ограничение количества обращений определяет, сколько вызовов API можно выполнить в течение определенного периода времени. Ограничения количества обращений применяются к каждому приложению.

Мы можем отключить приложения, которые чрезмерно или регулярно нарушают эти ограничения.

Ограничение количества обращений в Facebook API Graph применяется очень редко. Из этого документа вы узнаете, что это за ограничение и как с ним работать.

Ограничения на количество обращений могут срабатывать на уровне приложения и на уровне страницы.

Ограничение на количество обращений на уровне приложения

Эти ограничения применяются к вызовам, выполненным с помощью любого маркера доступа, кроме маркеров доступа Страницы.

Все вызовы API от приложения, выполненные после превышения ограничения, регулируются и отклоняются с кодом ошибки error code = 4, CodedException. Чтобы вызовы снова выполнялись успешно, с последнего превышения должен пройти час. Ограничения рассчитываются каждый час; данные о текущем использовании можно посмотреть в панели приложений.

Панель ограничения количества обращений

Инструмент ограничения количества обращений предоставляет информацию о том, насколько близко ваше приложение находится к состоянию регулирования. Сведения об ограничениях, которые распространяются на ваши приложения, представлены на двух графиках в панели приложений.

  • На одном графике показаны данные о текущем использовании, которые связаны с откликами API Graph. Это визуальное представление значения заголовка из запросов API Graph.
График для приложения, которое может превысить ограничение
  • На втором графике представлены исторические данные об ограничениях. Вы можете посмотреть данные за последние 24 часа или 7 дней. Чтобы изучить данные об использовании подробнее, в том числе посмотреть разбивки, нажмите любой фрагмент данных на историческом графике. Исторические данные отображаются только для тех приложений, которые получили достаточно вызовов. Чем больше вызовов у приложения, тем больше вероятность, что вы сможете изучить исторические данные.
Исторический график для приложения, которое превысило свои ограничения в последние 24 часа

Ограничения

Общее количество вызовов для приложения может в 200 раз превысить количество пользователей. Мы не ограничиваем вызовы для пользователей; если количество пользователей не превышает допустимый максимум, каждый из них может выполнять больше 200 вызовов в час. Например, если у вашего приложения 100 пользователей, это означает, что оно может совершать 20 000 вызовов. Но при этом 19 000 из этих вызовов могут выполнить 10 самых активных пользователей.

Если приложение достигло предельного количества обращений, будут ограничены все последующие обращения к нему, а не только вызовы для определенного пользователя.

Количество пользователей приложения рассчитывается исходя из количества активных пользователей за день и новых входов за сегодняшний день. Если в некоторые дни активность людей в приложении оставляет желать лучшего, рассчитать количество пользователей в приложении можно исходя из активных пользователей за неделю или даже месяц. Приложения с высокой ежедневной вовлеченностью получают более свободные ограничения, чем приложения с низкой активностью — вне зависимости от количества установок приложения.

Обратите внимание:

  • Ограничение количества обращений распространяется не на все вызовы API, поэтому вы можете обнаружить несоответствие между количеством вызовов, которые вы совершаете, и тем, что вы видите в инструменте.
  • Кроме того, мы регулируем вызовы на основе времени использования ЦП и общего количества времени. Если некоторые эндпойнты требуют сложной обработки, ваше приложение может превысить ограничения, даже если не достигнуто максимальное количество вызовов. Приложения, у которых нет каких-либо специализированных эндпойнтов, редко превышают допустимое время использования ЦП и общее количество времени. Изучить эндпойнты, которые требуют больших мощностей от ЦП и длительной обработки, можно в историческом графике (если он доступен для вашего приложения).
  • API Ads Insights и API Marketing могут использовать разный набор ограничений количества обращений. Подробнее об ограничении количества обращений в API Marketing см. здесь.

Рекомендации

Чтобы не превысить ограничения количества обращений:

  • Распределите запросы равномерно между двумя временными интервалами во избежание перегрузки трафика.
  • Используйте фильтры для ограничения размера отклика и избегайте вызовов, которые запрашивают перекрывающиеся данные.
  • Используйте заголовок ограничения количества обращений, чтобы динамически балансировать количество вызовов.

Заголовок ограничения количества обращений

Все ответы на вызовы, выполненные к API Graph, включают заголовок HTTP X-App-Usage. В нем указывается, сколько процентов от разрешенной квоты используется в данный момент. Это процентное соотношение равно значению, которое отображается в графике ограничения количества обращений. Используйте этот показатель, чтобы динамически балансировать нагрузку и избежать срабатывания ограничения.

Заголовок ограничения количества сообщений имеет формат JSON и выглядит следующим образом:

{
  "call_count"    : x, 
  "total_time"    : y, 
  "total_cputime" : z
}

Значения x, y и z представляют собой целые числа и указывают на величину каждого из показателей в процентах от разрешенной квоты. Если любой из них достигнет 100, сработает ограничение для приложения.

Ограничение на количество обращений на уровне страницы

Эти ограничения применяются к вызовам, выполненным с помощью маркера доступа страницы. При достижении этого ограничения приложение получает код ошибки 32.

Подробно это ограничение описано здесь.

Панель ограничения количества обращений

Вы можете просмотреть графики ограничений количества обращений для каждой страницы, маркер доступа которой используется в вашем приложении для выполнения вызовов.

Ограничения

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

Ежедневное количество вовлеченных людей, использующих страницу, — это число уникальных пользователей, взаимодействовавших со страницей в течение последних 24 часов. Взаимодействием со страницей считается клик по ней или по размещенным на ней материалам.

Количество вовлеченных пользователей за последние 24 часа используется для расчета ограничений количества обращений для текущего 24-часового окна.

Всего от имени страницы за 24 часа может быть выполнено 4 800 вызовов для каждого вовлеченного пользователя. Например, если у страницы 100 вовлеченных пользователей за последние сутки, от ее имени за 24 часа может быть выполнено 480 000 вызовов. Расчетное 24-часовое окно обновляется каждые несколько минут. Ограничение вызовов действует на уровне страницы, поэтому одно приложение может выполнить 400 000 вызовов, а другое — 80 000. Если на странице сработало ограничение, оно будет действовать только на те вызовы вашего приложения, которые содержат маркер доступа этой страницы. Таким образом, приложение может выполнять прочие вызовы в обычном режиме.

Для расчета количества вызовов страницы используется ежедневное количество запросов, использующих ваш маркер доступа к Странице. Для приложений, которые получают больше вызовов в день, ограничение количества обращений может быть более точным, чем для страниц, получающих меньше запросов. У приложений с очень малым количеством вызовов могут быть проблемы с ограничением частоты обращений.

Обратите внимание:

  • Ограничение количества обращений распространяется не на все вызовы API, поэтому вы можете обнаружить несоответствие между количеством вызовов, которые вы совершаете, и тем, что вы видите в инструменте.
  • Кроме того, Facebook регулирует вызовы на основе времени использования ЦП и общего количества времени. Нажмите на график в инструменте ограничения количества обращений в своей панели, чтобы получить подробную информацию.
  • API Ads Insights и API Marketing могут использовать разный набор ограничений количества обращений. Подробнее об ограничении количества обращений в API Marketing см. здесь.

Рекомендации

Когда срабатывает ограничение, вызывающий получает ошибку для последующих вызовов с кодом error code = 32, CodedException. Может пройти час, до того как прием запросов возобновится.

Чтобы не превысить ограничения количества обращений:

  • Распределите запросы равномерно между двумя временными интервалами во избежание перегрузки трафика.
  • Используйте фильтры для ограничения размера отклика и избегайте вызовов, которые запрашивают перекрывающиеся данные.
  • Используйте заголовок ограничения количества обращений, чтобы динамически балансировать количество вызовов.

Заголовок ограничения количества обращений

Если ваше приложение выполняет много вызовов и может инициировать срабатывание ограничения, мы возвращаем заголовок HTTP X-Page-Usage. В нем указывается, сколько процентов от разрешенной квоты используется страницей в данный момент. Если вызовы выполняются с использованием маркера доступа той или иной страницы, вы получите значение X-Page-Usage только для этой страницы. Процентное соотношение равно значению, показанному на графике ограничения количества обращений для этой страницы. Используйте этот показатель, чтобы динамически балансировать нагрузку и избежать срабатывания ограничения.

Заголовок ограничения количества сообщений имеет формат JSON и выглядит следующим образом:

{
  "call_count"    : x, 
  "total_time"    : y, 
  "total_cputime" : z
}

Значения x, y и z представляют собой целые числа и указывают на величину каждого из показателей в процентах от разрешенной квоты. Если любой из них достигнет 100, сработает ограничение для приложения.

Ограничение количества обращений на уровне аккаунта

Эти ограничения применяются к вызовам, выполненным с помощью маркера доступа пользователя. Если ограничение достигнуто, приложение получает код ошибки 17. Такое может произойти, если из определенного аккаунта пользователя будет отправлено слишком много вызовов API.

Примечание.

Мы учитываем вызовы, отправленные не только вашим приложением, но и другими приложениями.

Если количество вызовов API, отправленных пользователем, достигло порогового значения, мы ограничиваем его обращения.

Чтобы не превысить ограничения количества обращений:

Вы не можете повлиять на это. Мы ограничиваем обращения для пользователя, если он отправляет слишком много вызовов (в том числе из других приложений). Однако если слишком много пользователей приложения превышают допустимое количество вызовов, скорее всего, проблема заключается в приложении. В этом случае вы должны уменьшить количество вызовов или более равномерно распределить их.

URL фото профиля

У URL фото профиля, возвращенных API Graph, могут быть разные ограничения по количеству обращений. Если вы их превысите, запрос будет возвращать код отклика HTTP 429 (слишком много запросов). Если вы регулярно превышаете ограничение по количеству обращений:

  • Не отправляйте слишком много запросов подряд
  • Загружайте фото на стороне клиента, а не сервера.
  • Кэшируйте фото при загрузке на стороне сервера.

ЧаВо

Что считается вызовом API?

Предельное количество вычисляется по количеству всех вызовов, а не только по отдельным HTTPS-вызовам API. Например, если вы сделали один вызов API и указали в нем несколько ID, каждый ID будет считаться отдельным вызовом API, несмотря на то что HTTPS-вызов только один.

Проиллюстрируем этот принцип следующими примерами.

Примеры запросов Число вызовов API

GET https://graph.facebook.com/photos?id=4
GET https://graph.facebook.com/photos?id=5
GET https://graph.facebook.com/photos?id=6

3

GET https://graph.facebook.com/photos?id=4,5,6

3

Если вам нужно обратиться к нескольким объектам по ID, настоятельно рекомендуем применить второй подход. Он повысит качество откликов API, но при этом не увеличит число вызовов, которое учитывается при ограничении.

Можно также добавить все запросы в один пакет с помощью API Batch; однако не забывайте, что каждый запрос в пакете рассматривается как отдельный вызов API или даже как несколько вызовов API, если в нем указано несколько ID.

Если на приложение или страницу наложены ограничения, вызовы API, вызвавшие ошибки из-за срабатывания ограничения, также учитываются при вычислении предельного количества вызовов.


Какие ошибки может регистрировать мое приложение?
Тип регулирования Минимум Код ошибки

Регулирование на уровне приложения

200 вызовов на человека в час

4

Регулирование на уровне аккаунта

Неприменимо

17

Регулирование на уровне страницы

4800 вызовов на человека в 24 часа

32

Регулирование на пользовательском уровне

Неприменимо

613


Что делать, если отображается код ошибки 613?

Если в отклике содержится код ошибки error_subcode 1996, это значит, что количество запросов API из вашего приложения внезапно увеличилось. Эта ошибка может возникнуть, например, если вы недавно внесли в приложение изменения, которые повлияли на количество запросов API.

Если этот код ошибки не отображается, значит, ваше приложение превысило пользовательское ограничение по количеству запросов. Обратитесь к менеджеру по работе с партнерами за помощью.


Я создаю скрапер. Что еще мне нужно иметь в виду?

Если вы создаете сервис, который выполняет скрапинг данных, ознакомьтесь с нашими условиями скрапинга данных.