3 月中旬,一些主要广告商离开了 YouTube,因为他们的前置广告(付费视频在播放主要内容之前显示,5 秒后可以跳过)被放置在具有攻击性内容的视频中。然而,在这篇文章中,我们想谈谈另一个重要的话题——在儿童内容中无意识地展示前置广告。
问题在于,即使针对成人观众进行了正确的定位设置,也会有大量(在某些情况下高达 90%)的印象流向儿童频道。这是因为父母在他们的设备(包括移动设备和桌面设备)上使用“成人”帐户向他们的孩子展示卡通和教育视频。
广告商自然不想把预算花在单纯看片头广告的孩子身上,因为这对销量几乎没有影响。此类视频和频道可以使用否定关键字排除,但费时费力,不会排除所有频道和视频。
许多不受欢迎的儿童频道和视频继续展示前置广告,因为它们有一个共同的、幼稚的名字或描述不充分,但仍然有许多儿童观看。下面提供了一种使用 AdWords 脚本自动搜索和排除此类渠道的方法。
问题方案
Google AdWords 允许您在 JS 上创建自己的脚本来管理您的广告帐户。它们基于 Google Apps 脚本,其主要优势是与其他 Google 服务集成,例如 Google Drive、Spreadsheets、YouTube、Analytics、BigQuery 等,以及与第三方 API 协同工作的能力。例如,您可以使用 YouTube Data API v3 查找用于广告展示位置的视频。
事实证明,儿童视频不是按名称组合的,而是按标签组合的。在修改了 YouTube 视频搜索脚本后,发现了各种英语、俄语和乌克兰语儿童视频的相似标签,并将其保存在Google 电子表格中以供进一步使用。该文件是公开的,但建议在设置脚本之前制作此文件的副本并将其保存在您的 Google 云端硬盘中,并将脚本中的文件 ID 替换为新文件 ID。
重要细节
我们从 URL_PERFORMANCE_REPORT 中获取了上一日期的所有与 YouTube 展示位置和 videoId 的链接:
var report = AdWordsApp.report( 'SELECT Url' + 'FROMURL_PERFORMANCE_REPORT ' + 'WHERE CampaignName CONTAINS "Video" ' + 'DURING YESTERDAY'); var rows = report.rows(); while (rows.hasNext()) { var row = rows.next(); var videoId = row['Url'].toString().replace('www.youtube.com/video/',''); videoIdList.push([videoId]); }
请求与循环中的每个视频 ID 一起发送到 YouTube。检查响应中获得的标签和视频频道 ID 是否与收集的库中的任何内容与孩子的标签相匹配:
for (var i = 0; i < videoList.length; i++) { var results = YouTube.Videos.list('snippet', {id: videoList[i]}); try { if (results.items[0].snippet !== undefined) { var channelId = results.items[0].snippet.channelId; var tags = results.items[0].snippet.tags; if (uniqueChannel[channelId] !== true){ for (var k = 0; k < tags.length; k++) { if (tagsObj[tags[k]] !== undefined) { channels.push([channelId]); uniqueChannel[channelId] = true; Logger.log("Add to the library with extensions - " + channelId); break; } else { continue; }; } } } } catch (e) { Logger.log(e); } }
如果任何视频标签与库中的标签匹配,视频频道的 ID 将被发送到数组以进行排除(如果尚未通过同一频道的另一个视频添加)。
检查完所有视频后,运行循环以将所有频道添加到您的 AdWords 帐户的排除网站列表中。需要提前创建一个与脚本中名称相同的列表(此处为“Video_channels”)。排除站点列表的限制是 65,000,因此应该不会出现任何溢出问题。
var excludedPlacementList = AdWordsApp.excludedPlacementLists().withCondition('Name = "Video_Channels"').get().next(); for (var d = 0; d < channels.length; d++) { excludedPlacementList.addExcludedPlacement("youtube.com/channel/"+channels[d].toString()); };
出现问题
上面提供的解决方案似乎可以正常工作,但仍然出现了一些问题。在使用这个脚本时,我们遇到了以下问题。该脚本无法处理前一天的所有视频,因为 AdWords 有 30 分钟的限制。因此,没有添加新的例外。
此外,有必要尽可能频繁地添加视频,以通过定位合适的观众来节省预算。不幸的是,根据我们的经验,即使将视频添加到例外列表中,它们也不会立即开始工作。谷歌技术支持估计最多需要 2 天,通常更少。因此,如果您有脚本收集的频道列表,建议提前将它们添加到例外列表中。
解决方案
每小时运行一次脚本似乎是合理的,并且不检查以前检查过的视频,否则脚本将在一天中达到 30 分钟的限制。该解决方案是使用此脚本设计的。与第一个版本的脚本相比,它有点复杂,但结果非常好。
我们添加了将包含选中内容的 txt 文件保存到 Google 云端硬盘的功能。检查内容的 ID 已注册到文件中,随后将它们与新 ID 进行比较。比较是使用开源 Undercode.js 库中的差异方法进行的。
作为输出,我们得到了最后一个小时的全新 videoId 数组,我们根据脚本第一个版本中开发的方案检查了标签的出现情况。脚本完成后,我们将当天的所有视频添加到同一个 txt 文件中。
设置脚本
指定要在 Google Drive 上创建的文件的名称:
var dataFile = "videoIds.txt";
如果没有这样的文件,它将自动创建。选择您要检查的广告系列:
'WHERE CampaignName CONTAINS "(Video)" AdWords 帮助
中提供了 AWQL 语法。替换 Google 电子表格中的文件 ID:
var spreadsheet = SpreadsheetApp.openById('11PMGc70yLE88Npi47Hwb6W36Y8yjw2N2CdXXLgdK12o');在 AdWords 界面中,创建已排除展示位置的一般列表:
var excludedPlacementList = AdWordsApp.excludedPlacementLists().withCondition('Name = "Video_channels"').get().next();
并插入其名称而不是“Video_channels”。在扩展 API 中启用 YouTube。
第一次观看后,在 Google Developers Console 中启用 YouTube API。该链接将在错误日志中。为脚本操作设置“每小时”计划。
瞧!
最后评论
因此,我们创建了一个脚本,该脚本每小时检查一次包含儿童视频内容的 YouTube 频道,而没有达到时间限制。您还可以通过向电子表格文件添加新标签来针对任何主题自定义脚本。更新脚本的代码发布在此处。非常感谢您的问题和建议。
请记住,有时包含其他内容的视频频道也会属于例外列表,但这种情况很少发生。这有两个主要原因。频道所有者共享儿童内容以及其他类型的内容。有时,视频频道也可能使用错误的标签来扩大受众。
根据我们的观察,在您开始使用该脚本后,观看率(VTR,浏览率)会显着下降,因为成人比儿童更频繁地按下“跳过”按钮,但是这样,您的广告将被展示给相关的观众。
网友评论文明上网理性发言 已有0人参与
发表评论: