Оптимизация квоты

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

На этой странице подробно описаны общие рекомендации и описаны дополнительные функции API Display & Video 360, которые помогут сократить использование квот.

Делайте одновременные запросы к различным рекламодателям

Большинство методов в Display & Video 360 API указывают рекламодателя в URL. In addition to project-wide quota , more restrictive "per advertiser per project" rate limits are enforced for these methods when making calls specifying the same advertiser.

Чтобы оптимизировать эту квоту, ограничьте одновременные запросы теми, которые указывают разных рекламодателей.

Используйте параметры pageSize , filter и orderBy

Используйте методы list вместо методов get при получении нескольких ресурсов. Из-за ограничений на размер страницы вызовы list по-прежнему могут потреблять много квоты.

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

Если вам нужно получить только часть ответа из полного списка, вы можете оптимизировать использование квоты , воспользовавшись дополнительными параметрами filter и orderBy .

Параметр filter позволяет ограничить ресурсы, извлекаемые вызовом list , теми, чьи свойства соответствуют заданным выражениям. Этот параметр полезен при попытке получить:

  • Конкретный ресурс с неизвестным идентификатором, но известными свойствами. При поиске определенного ресурса вы можете отфильтровать возвращаемый список по известным свойствам нужного ресурса. Примеры включают фильтрацию позиций по известному displayName , объявлений по ожидаемому creativeType и источников инвентаря по соответствующему exchange .
  • Сопутствующие ресурсы. Ресурсы в Display & Video 360 часто связаны друг с другом. Вы можете использовать фильтры, чтобы ограничить возвращаемые ресурсы теми, которые имеют определенные отношения с другими. Примеры включают получение всех заказов на размещение с определенным campaignId и всех объявлений , назначенных позиции .
  • Только ресурсы, имеющие действенные свойства. Функциональность API позволяет легко проверять состояние ресурсов и реагировать программно. Используя фильтры, вы можете использовать вызовы list , чтобы получать только те ресурсы, где необходимо действие. Примеры включают получение всех позиций , в которых отображается определенное сообщение lineItemWarningMessage , требующее действия, все заказы на размещение , которые были обновлены после заданной даты и времени, или все объявления , имеющие неудавшийся approvalStatus .

Параметр orderBy позволяет сортировать полученные ресурсы по определенным свойствам по возрастанию или убыванию. orderBy , особенно при использовании вместе с filter , может использоваться для ограничения количества страниц, которые необходимо пройти, прежде чем найти определенный ресурс. Это также позволяет вам легко получить верхнюю и нижнюю границы списка ресурсов. Например, упорядочивание по updateTime позволит вам быстро найти самые последние обновленные позиции или заказы на размещение рекламодателя.

Используйте массовые функции и функции для всего ресурса.

API Display & Video 360 предлагает ряд массовых функций, охватывающих все ресурсы, которые выполняют множество действий с помощью одного запроса. Примеры таких функций включают в себя:

  • Массовое редактирование сайтов, принадлежащих одному каналу . Каналам могут быть назначены тысячи сайтов. Вместо управления списком сайтов канала с помощью отдельных запросов create или delete вы можете использовать один запрос bulkEdit или replace для добавления и удаления множества сайтов или замены всего содержимого канала соответственно.
  • Управление всем пакетом таргетинга рекламодателя. Набор таргетинга ресурса назначается нескольким типам таргетинга. Функции таргетинга на уровне ресурса, такие как listAssignedTargetingOptions и editAssignedTargetingOptions в службе advertisers , позволяют получать, создавать и удалять таргетинг для нескольких типов таргетинга в одном запросе. Это снижает стоимость квоты на настройку пакета таргетинга рекламодателя для одного запроса.
  • Установка одного и того же ограничения таргетинга для нескольких позиций. Если вам нужно внести одинаковые изменения в таргетинг сразу для нескольких позиций, это можно сделать с помощью одного запроса advertisers.lineItems.bulkEditAssignedTargetingOptions .
  • Активация или приостановка нескольких позиций. Позиции необходимо активировать после создания, прежде чем они начнут показываться. Если вы создаете несколько позиций подряд, вы можете активировать их все с помощью одного запроса advertisers.lineItems.bulkUpdate . Тот же метод можно использовать для приостановки нескольких позиций, чтобы остановить их показ.

Кэшируйте и проверяйте регулярно используемые идентификаторы

Многие операции в API Display & Video 360 требуют использования идентификаторов ресурсов, которые получаются через сам API, включая идентификаторы параметров таргетинга , идентификаторы аудитории Google и т. д. Чтобы избежать получения идентификаторов из API при каждом использовании, мы рекомендуем хранить эти идентификаторы локально.

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

Внедрить экспоненциальную отсрочку для длительных операций.

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

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

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

  • Отправьте запрос sdfdownloadtasks.operations.get к API.
  • Получить объект операции.
    • Если поле done не соответствует действительности, это означает, что вам следует повторить запрос.
    • Подождите 5 секунд + случайное количество миллисекунд и повторите запрос.
  • Получите объект операции.
    • Если поле done не соответствует действительности, это означает, что вам следует повторить запрос.
    • Подождите 10 секунд + случайное количество миллисекунд и повторите запрос.
  • Получите объект операции.
    • Если поле done не соответствует действительности, это означает, что вам следует повторить запрос.
    • Подождите 20 секунд + случайное количество миллисекунд и повторите запрос.
  • Получите объект операции.
    • Если поле done не соответствует действительности, это означает, что вам следует повторить запрос.
    • Подождите 40 секунд + случайное количество миллисекунд и повторите запрос.
  • Получите объект операции.
    • Если поле done не соответствует действительности, это означает, что вам следует повторить запрос.
    • Подождите 80 секунд + случайное количество миллисекунд и повторите запрос.
  • Продолжайте использовать этот шаблон до тех пор, пока объект запроса не будет обновлен или не будет достигнуто максимальное время.