Расширения объявлений

Скрипты Google Рекламы поддерживают следующие расширения объявлений:

Дополнительную информацию о расширениях объявлений можно найти в Справочном центре.

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

const sitelinkIterator = AdsApp.extensions().sitelinks().get();
for (const sitelink of sitelinkIterator) {
  // Do something with each sitelink
}

Другие поддерживаемые расширения объявлений можно получить аналогичным образом, используя соответствующие итераторы.

Создание

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

const phoneNumberBuilder = AdsApp.extensions().newPhoneNumberBuilder();
const newPhoneNumber = phoneNumberBuilder
  .withCountry("US")
  .withPhoneNumber("6502530000")
  .withCallOnly(false)
  .build()
  .getResult();

При вызове build() в аккаунте создается номер телефона, но он пока не будет показываться в объявлениях. его необходимо сначала добавить в кампанию или группу объявлений.

// Add a phone number to a campaign.
campaign.addPhoneNumber(newPhoneNumber);

// Add a phone number to an ad group.
adGroup.addPhoneNumber(newPhoneNumber);

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

Посмотреть статистику

Скрипты Google Рекламы позволяют получать статистику по поддерживаемым расширениям объявлений на уровне аккаунта, кампании или группы объявлений.

Пример получения статистики по дополнительным ссылкам:

// Account-level stats
// Get a sitelink in the account.
const sitelinkIterator = AdsApp.extensions().sitelinks().get();
const sitelink = sitelinkIterator.next();
const sitelinkStats = sitelink.getStatsFor("LAST_30_DAYS");
console.log(sitelinkStats.getClicks());

// Campaign-level stats.
// Get a sitelink in a campaign.
const campaignSitelinkIterator = campaign.extensions().sitelinks().get();
const campaignSitelink = campaignSitelinkIterator.next();
const campaignSitelinkStats = campaignSitelink.getStatsFor("LAST_30_DAYS");
console.log(campaignSitelinkStats.getClicks());

// Ad-group-level stats.
// Get a sitelink in an ad group.
const adGroupSitelinkIterator = adGroup.extensions().sitelinks().get();
const adGroupSitelink = adGroupSitelinkIterator.next();
const adGroupSitelinkStats = adGroupSitelink.getStatsFor("LAST_30_DAYS");
console.log(adGroupSitelinkStats.getClicks());

Статистику для других поддерживаемых расширений можно получить аналогичным образом.

Изменение расширений объявлений

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

// Get a sitelink in the account.
const sitelinkIterator = AdsApp.extensions().sitelinks().get();
const sitelink = sitelinkIterator.next();
console.log(sitelink.getLinkText()); // "original text"

// Get a sitelink from a campaign. Assume it's the same one as before.
const campaignSitelinkIterator = campaign.extensions().sitelinks().get();
const campaignSitelink = campaignSitelinkIterator.next();
console.log(campaignSitelink.getLinkText()); // "original text"

// Get a sitelink from an ad group. Assume it's the same one as before.
const adGroupSitelinkIterator = adGroup.extensions().sitelinks().get();
const adGroupSitelink = adGroupSitelinkIterator.next();
console.log(adGroupSitelink.getLinkText()); // "original text"

// Change the sitelink's link text. This change will affect all the campaigns
// and ad groups to which the sitelink belongs.
campaignSitelink.setLinkText("new link text");

// Same text!
console.log(campaignSitelink.getLinkText()); // "new link text"
console.log(adGroupSitelink.getLinkText()); // "new link text"
console.log(sitelink.getLinkText()); // "new link text"

Те же принципы применимы и к другим поддерживаемым расширениям объявлений.

Как посмотреть расширения объявлений на уровне группы объявлений

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

// This will return phone numbers that have been explicitly added to this
// ad group.
const adGroupPhoneNumberIterator = adGroup.extensions().phoneNumbers().get();

Другие поддерживаемые расширения объявлений можно найти на уровне группы объявлений аналогичным образом.

Как посмотреть расширения объявлений на уровне аккаунта

Скрипты Google Рекламы позволяют работать с расширениями объявлений на уровне аккаунта. Уточнения, ссылки на мобильные приложения и отзывы можно добавлять в качестве расширений объявлений на уровне аккаунта, но дополнительные ссылки и номера телефонов на уровне аккаунта недоступны. Следующий вызов метода возвращает уточнения, которые были явным образом добавлены в аккаунт.

// This will return callouts that have been explicitly added to your account.
const accountCalloutIterator =
    AdsApp.currentAccount().extensions().callouts().get();

Ссылки на мобильные приложения и отзывы можно получить аналогичным образом.

Добавление расширений на уровне аккаунта выполняется так же, как и на уровне кампании или группы объявлений. Вот пример создания уточнения:

// Create a new callout in the account. Without adding the new callout as an ad
// group, campaign or account extension, it won't actually serve.
const calloutBuilder = AdsApp.extensions().newCalloutBuilder();
const newCallout = calloutBuilder.withText("Sample Text").build().getResult();

// Add the new callout as an account-level extension. This enables it to serve
// for all campaigns in the account.
AdsApp.currentAccount().addCallout(newCallout);

Ссылки на мобильные приложения и отзывы можно добавить аналогичным образом.

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

Расширения объявлений можно удалить как из кампании или группы объявлений, так и из аккаунта. Скрипты Google Рекламы не поддерживают одновременное удаление всех расширений объявлений из аккаунта.

// Get a mobile app from a campaign.
const campaignMobileAppIterator = campaign.extensions().mobileApps().get();
const campaignMobileApp = campaignMobileAppIterator.next();

// Remove the mobile app.
campaign.removeMobileApp(campaignMobileApp);

// The mobile app still exists in the account and will be returned in the
// following iterator.
const mobileAppIterator = AdsApp.extensions().mobileApps().get();

А вот как можно удалить ссылку на мобильное приложение на уровне группы объявлений или аккаунта:

// Get a mobile app from an ad group.
const adGroupMobileAppIterator = adGroup.extensions().mobileApps().get();
const adGroupMobileApp = adGroupMobileAppIterator.next();

// Remove the mobile app.
adGroup.removeMobileApp(adGroupMobileApp);

// Get an account-level mobile app.
const accountMobileAppIterator =
    AdsApp.currentAccount().extensions().mobileApps().get();
const accountMobileApp = accountMobileAppIterator.next();

// Remove the mobile app.
// Note that this removes the mobile app from the account level, so it won't
// serve as an account-level extension, but it will still exist in the
// account. It can still be added to an AdGroup or Campaign, or again as an
// account-level extension in the future.
AdsApp.currentAccount().removeMobileApp(accountMobileApp);

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