Google Реклама поддерживает различные типы объявлений, в том числе текстовые, графические и мобильные. В этом руководстве рассказывается, как создавать объявления, получать информацию о них и создавать отчеты с помощью скриптов Google Рекламы. Обзор всех типов объявлений, поддерживаемых Google Рекламой, можно найти в руководстве по API.
Создание
Скрипты могут создавать объявления с помощью метода newAd() в экземплярах AdGroup. Этот метод возвращает объект AdBuilderSpace, который создает объекты Builder для поддерживаемых типов объявлений.
В следующем фрагменте кода показано, как создать адаптивное поисковое объявление:
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.`);
}
Подробнее о том, как создавать отчеты в скриптах, рассказывается в руководстве по отчетам.