Скрипты Google Рекламы позволяют управлять видеокампаниями на YouTube и создавать отчеты по ним. С помощью скриптов можно управлять существующими видеокампаниями, создавать группы объявлений и объявления и управлять ими, настраивать таргетинг для кампаний и создавать отчеты. Однако создавать видеокампании с помощью скриптов нельзя.
Как получить видеокампании и группы объявлений
Видеокампании доступны в коллекции videoCampaigns объекта AdsApp. Вы можете получить их так же, как и обычные кампании:
const campaignName = "My first video campaign";
const campaignIterator = AdsApp.videoCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
После извлечения кампании можно подобным образом получить входящие в нее группы объявлений:
const adGroupIterator = campaign.videoAdGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
Вы также можете использовать метод AdsApp.videoAdGroups():
const adGroupIterator = AdsApp.videoAdGroups()
.withCondition(`campaign.name = "${campaignName}" AND ad_group.name = "${adGroupName}")
.get();
for (const adGroup of adGroupIterator) {
...
}
Создание видеорекламы
Скрипты Google Рекламы позволяют получать видеообъявления с помощью метода videoAds() класса VideoAdGroup. Чтобы создать видеообъявление, используйте метод newVideoAd() ресурса VideoAdGroup.
Форматы видеорекламы
Поддерживаемые форматы видеообъявлений зависят от типа видеокампании. Чтобы выбрать подходящий тип видеокампании, добавьте звонок withCondition на AdvertisingChannelSubType.
У некоторых видеокампаний есть подтипы, которые ограничивают типы поддерживаемых объявлений. В частности, в кампаниях типа VIDEO_ACTION поддерживаются только объявления типа VIDEO_RESPONSIVE, а в кампаниях типа VIDEO_NON_SKIPPABLE – только объявления типа NON_SKIPPABLE_INSTREAM_VIDEO_AD.
Лучший способ работать с кампаниями определенных типов – использовать в селекторе условие withCondition. Вы можете изменить AdvertisingChannelSubType для нужного типа кампании:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
.get();
В видеокампаниях без подтипа поддерживаются следующие форматы видеообъявлений:
- TrueView In-Stream
- TrueView Video Discovery
- Заставки
Выбрать кампании можно с помощью withCondition:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = null")
.get();
Видеообъявления In-Stream могут показываться до, во время или после других видео. Пользователи могут пропустить их через определенное время. Объявления Video Discovery показываются в контекстно-медийной сети и на различных страницах YouTube. Они воспроизводятся, только если пользователь нажимает на значок объявления. Объявления-заставки длятся не более шести секунд и могут показываться в видео на YouTube, а также на партнерских сайтах и в приложениях в контекстно-медийной сети. Подробную информацию о каждом из этих типов объявлений можно найти в статье Форматы видеорекламы.
Создайте группу объявлений
Группа видеообъявлений создается с помощью метода newVideoAdGroupBuilder() видеокампании. При создании группы объявлений необходимо указать ее тип и название. Тип группы объявлений должен быть одним из следующих и не может быть изменен после создания группы объявлений:
VIDEO_BUMPERVIDEO_EFFICIENT_REACHVIDEO_NON_SKIPPABLE_IN_STREAM(только для кампаний типа "VIDEO_NON_SKIPPABLE")VIDEO_RESPONSIVE(только для кампаний типа "VIDEO_ACTION")VIDEO_TRUE_VIEW_IN_DISPLAYVIDEO_TRUE_VIEW_IN_STREAMYOUTUBE_AUDIO
Пример:
const videoAdGroup =
videoCampaign.newVideoAdGroupBuilder()
.withAdGroupType("VIDEO_TRUE_VIEW_IN_STREAM")
.withName("Video Ad Group")
.build()
.getResult();
Создайте видеообъект
В видеообъявлениях обычно нужно ссылаться на видеообъект. Это определяет, какое видео будет воспроизводиться в объявлении. Загрузить видео с помощью скриптов нельзя, но можно связать существующее видео YouTube, которое вы ранее загрузили для использования в объявлениях.
Для этого создайте объект Asset с помощью YouTubeVideoAssetBuilder.
const assetOperation = AdsApp.adAsset().newYouTubeVideoAssetBuilder()
.withName("name")
// This is the ID in the URL for the YouTube video.
.withYouTubeVideoId(youTubeVideoId)
.build();
const videoAsset = assetOperation.getResult();
Создайте объявление
Чтобы создать объявление, используйте метод builder, соответствующий типу группы объявлений (после newVideoAd()):
inStreamAdBuilder()videoDiscoveryAdBuilder()bumperAdBuilder()responsiveVideoAdBuilder()(только для кампаний типа "VIDEO_ACTION")nonSkippableAdBuilder()(только для кампаний типа "VIDEO_NON_SKIPPABLE")
Пример:
const videoAd = videoAdGroup.newVideoAd()
.inStreamAdBuilder()
.withAdName("Video Ad")
.withFinalUrl("http://www.example.com/video-ad")
// Specify the video asset created in the last step.
.withVideo(video)
.build()
.getResult();
Таргетинг видеорекламы
В видеокампаниях есть два типа таргетинга. Объект VideoCampaignTargeting представляет таргетинг, заданный на уровне аккаунта для видеокампаний в целом. Доступ к нему можно получить с помощью AdsApp.videoCampaignTargeting(). Его нельзя изменить с помощью скриптов, но можно посмотреть.
Другой тип таргетинга позволяет задавать критерии для видеокампаний и групп видеообъявлений по отдельности. Для этого используется метод videoTargeting() на уровне кампании или группы объявлений. Он предоставляет доступ к селекторам и конструкторам для положительных и отрицательных критериев всех типов, применимых к этому уровню таргетинга. Метод AdsApp.videoTargeting() также позволяет просматривать критерии на уровне аккаунта и включает набор критериев, отличный от AdsApp.videoCampaignTargeting(). Как и в случае с VideoCampaignTargeting, управлять этими критериями с помощью скриптов нельзя.
Вот пример исключения определенного места размещения из кампании:
videoCampaign.videoTargeting().newPlacementBuilder()
.withUrl("http://www.example.com")
.exclude();
Критерии демографического таргетинга (возраст, пол) работают несколько иначе, чем другие типы критериев. При создании новой группы объявлений автоматически создаются критерии для каждого возможного значения возраста и пола, и эта группа объявлений нацеливается на все из них. Чтобы исключить демографическую группу, получите существующий таргетинг и вызовите для него метод exclude(). Чтобы снова включить исключенную демографическую группу, найдите существующий таргетинг исключения и вызовите include().
Ниже приведен пример исключения определенного пола из группы объявлений.
const videoGenderIterator = videoAdGroup.videoTargeting()
.genders()
.withCondition('GenderType = "GENDER_MALE"')
.get();
if (videoGenderIterator.hasNext()) {
const videoGender = videoGenderIterator.next();
videoGender.exclude();
}