Эффективность

Клиентская библиотека для Perl упрощает взаимодействие с Google Ads API и требует минимальной настройки. Однако эффективность в значительной степени зависит от того, как библиотека используется и интегрируется.

Большинство общих рекомендаций применимы ко всем языкам. На этой странице приведены рекомендации по повышению производительности, относящиеся к Perl.

Профилирование приложения

Профилируйте приложение по использованию ЦП и памяти, чтобы выявить узкие места в производительности. Devel::NYTProf – это многофункциональный профилировщик исходного кода Perl, который можно использовать для анализа времени выполнения.

Версия Perl

Регулярно обновляйте Perl, чтобы повысить производительность среды выполнения. Скачайте последнюю версию из выпусков исходного кода CPAN Perl и проверьте минимальную требуемую версию библиотеки в требованиях README.

Журналы

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

Подробную информацию о настройке регистраторов сводных и подробных данных можно найти в руководстве по ведению журналов.

Различия между SearchStream и Search

В Google Ads API есть два основных метода получения объектов: Search (с разбивкой на страницы) и SearchStream (с потоковой передачей). SearchStream обеспечивает более высокую производительность, чем Search, хотя в некоторых случаях предпочтительнее использовать Search.

Подробное сравнение этих двух методов приведено в руководстве по потоковой передаче.

Оптимизация и пакетная обработка полезной нагрузки

Чтобы снизить нагрузку на сеть и потребление памяти:

  • Запрашивайте только те поля, которые нужны вашему приложению, в запросах на языке запросов Google Рекламы (GAQL).
  • Объединяйте несколько операций изменения в один запрос mutate, а не отправляйте отдельные запросы для каждого изменения.

Время ожидания HTTP истекло

Клиентская библиотека Perl позволяет настраивать время ожидания HTTP на уровне клиента:

my $api_client = Google::Ads::GoogleAds::Client->new({
  # Set HTTP timeout to 5 minutes (300 seconds).
  http_timeout => 300,
});

Значение по умолчанию – 3600 секунд (1 час). Оно задается на основе константы DEFAULT_HTTP_TIMEOUT в Constants.pm. Если вам нужно установить более короткое ограничение на максимальное время вызова API, задайте собственное время ожидания клиента.

Вы можете установить время ожидания, равное двум часам или более, но API все равно может прерывать выполнение слишком долгих запросов и возвращать ошибку DEADLINE_EXCEEDED. Если вы столкнулись с этой ошибкой, разделите запрос на несколько частей и выполните их параллельно. Это позволяет избежать ситуации, когда длительный запрос завершается ошибкой и единственный способ восстановить его – запустить запрос заново с самого начала.