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.`);
}
Дополнительную информацию о создании отчетов в скриптах см. в руководстве по созданию отчетов .