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

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

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

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

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

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

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

Ограничения

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

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

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

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

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

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

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

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

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

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

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

Если ваше приложение выполняет много вызовов и может инициировать срабатывание ограничения, мы возвращаем заголовок 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, отправленных пользователем, достигло порогового значения, мы ограничиваем его обращения.

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

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

ЧаВо

Что считается вызовом 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?

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

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

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