Типы объявлений

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

Творение

Скрипты могут создавать объявления, используя метод newAd() в экземплярах AdGroup . Этот метод возвращает объект AdBuilderSpace , который создает конструкторы для поддерживаемых типов объявлений.

Следующий фрагмент кода демонстрирует, как создать адаптивное рекламное объявление для поисковой выдачи:

let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
    .withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
    .withDescriptions(["Description 1", "Description 2"])
    .withFinalUrl("http://www.example.com")
    .withPath1("path1")
    .withPath2("path2")
    .build();

Проверка

Некоторая информация, связанная со всеми типами объявлений, доступна сразу же из Ad , например, идентификатор объявления и статус одобрения. Кроме того, любое объявление можно приостановить, включить или удалить.

Для доступа к полям, специфичным для типа объявления, например, к заголовкам адаптивного поискового объявления, используйте метод asType() для создания AdViewSpace . Это обеспечивает доступ к расширенной версии Ad , которая предоставляет методы, специфичные для данного типа.

Следующий фрагмент кода используется для заголовков всех адаптивных рекламных объявлений в поисковой выдаче:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
}

Обратите внимание, что условие Type = RESPONSIVE_SEARCH_AD гарантирует, что каждое объявление из итератора является адаптивным поисковым объявлением. Попытка просмотра объявления с неправильным типом приведет к ошибке, которая остановит выполнение вашего скрипта, поэтому важно просматривать поля, специфичные для типа, только когда тип объявления известен.

В следующем фрагменте кода показано, как определить, соответствует ли объявление нужному типу, используя метод Ad.isType() :

if (ad.isType().responsiveSearchAd()) {
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  let descriptions = responsiveSearchAd.getDescriptions();
}

Хотя вы не можете фильтровать объявления по заголовку с помощью стандартных селекторов, вы можете фильтровать их в JavaScript после получения данных:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  // Filter for ads containing a specific headline.
  if (headlines.some(h => h.getText().includes("Special Offer"))) {
    console.log(`Found ad with ID ${ad.getId()}`);
  }
}

Отчетность

Представление ad_group_ad можно использовать для запроса полей объявления в дополнение к обычной статистике. Например, вы можете фильтровать по типу объявления, используя ad_group_ad.ad.type . Следующий фрагмент кода показывает, как получить статистику для всех адаптивных поисковых объявлений:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad_group.id, " +
          "ad_group_ad.ad.id, " +
          "metrics.clicks, " +
          "metrics.impressions, " +
          "metrics.cost " +
  "FROM ad_group_ad " +
  "WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
    "AND segments.date DURING LAST_7_DAYS");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let clicks = row.metrics.clicks;
  ...
}

Фильтрация по содержимому актива

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

Следующий фрагмент кода извлекает статистику по всем адаптивным поисковым объявлениям, содержащим определенный заголовок:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad.id, " +
          "asset.text_asset.text, " +
          "metrics.clicks, " +
          "metrics.impressions " +
  "FROM ad_group_ad_asset_view " +
  "WHERE asset.text_asset.text LIKE '%Special Offer%' " +
    "AND ad_group_ad_asset_view.field_type = 'HEADLINE'");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let text = row.asset.textAsset.text;
  let clicks = row.metrics.clicks;
  console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}

Дополнительную информацию о создании отчетов в скриптах см. в руководстве по созданию отчетов .