借助 Google Ads 脚本,您可以管理基于 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 Ads 脚本,您可以使用 videoAds() 方法
来检索视频广告VideoAdGroup。您可以使用 VideoAdGroup 的
newVideoAd() 方法来制作新的视频广告。
视频广告格式
支持的视频广告格式因视频广告系列的类型而异。为确保您选择的视频广告系列类型正确,请在 AdvertisingChannelSubType 上添加 withCondition 调用。
部分视频广告系列有子类型,这些子类型会限制广告系列中支持的广告类型。具体而言,VIDEO_ACTION 广告系列仅支持 VIDEO_RESPONSIVE 广告类型,而 VIDEO_NON_SKIPPABLE 广告系列仅支持 NON_SKIPPABLE_INSTREAM_VIDEO_AD 广告类型。
若要对特定类型的广告系列执行操作,最好的方法是在选择器中使用 withCondition 子句。您可以更新感兴趣的广告系列类型的 AdvertisingChannelSubType:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
.get();
没有子类型的视频广告系列支持以下视频广告格式:
- TrueView 插播广告
- TrueView 视频发现广告
- 导视广告
您可以使用 withCondition 选择这些广告系列:
const campaignIterator = AdsApp.videoCampaigns()
.withCondition("AdvertisingChannelSubType = null")
.get();
插播视频广告可以在其他视频播放前、播放过程中或播放后展示,并让用户在指定时间后选择跳过。视频发现广告会在展示广告网络和各种 YouTube 页面上展示,并且只有在用户先主动点击广告缩略图后才会播放。导视广告的时长为 6 秒或更短,可以在 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 视频,以便在广告中使用。
为此,您需要使用
YouTubeVideoAssetBuilder 创建 Asset。
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();
构建广告
如需制作新广告,请使用与广告组类型匹配的构建器方法(在 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();
}