使用 AdWords 脚本更新出价并监控变化

已发表: 2021-10-23

AdWords 脚本是管理出价调整的绝佳工具。 在之前的文章中,例如使用 Google 表格和 AdWords 脚本自动出价,我们介绍了更改出价和处理上传的不同方法。 本文将把这些想法结合到您自己的投标系统中!

我们仍将在本文中保留一种高级方法,以保持可访问性或您想要使用的任何位置。 如果您对脚本的经验较少,这将使您更容易理解(这仍然是您可以自己应用的东西)。 如果您更有经验,则可以轻松进行自己的编辑以增强该工具。

在整个过程中,我们将利用免费工具和附加组件来创建一个系统,该系统可以提取数据、处理数据并上传一组出价更改。 我们将利用工作表和上传功能,让非编码人员更容易进行编辑,而不是完整的脚本。

我们将使用什么

我们将使用 Google AdWords 插件收集数据,使用 Google 表格管理出价,使用 AdWords 脚本格式化和上传更改,最后我们将使用 Google 表格应用复制更改并保存以供参考。

  • Google AdWords 插件 – 收集数据
  • Google 表格 – 通过公式应用更改并返回更改。
  • AdWords 脚本 – 检查更改、构建上传文件、推送到 AdWords、将更改日志保存到 Google Drive。

拉取数据

首先,我们需要设置我们的数据拉取。 您可以使用工具提取数据、使用脚本或手动粘贴数据。 由于这是关于自动化,我们将跳过最后一个选项。 第一个示例将使用 AdWords 插件(如果您想暂时限制代码暴露),我们将回顾用于编写数据拉取脚本的资源。

安装 AdWords 插件后,转到表格并创建一个新表格。 打开插件并开始设置您的工作表。 我们需要提取任何性能指标以及最高每次点击费用列。 如果您要更改出价占上次出价的百分比,您将需要当前出价。 如果您想保留记录,您还需要该列。

如果您愿意,也可以使用 SuperMetrics 之类的工具。 或者您可以使用 AdWords 脚本中的报告功能来导入更改。 这两者都提供了稍微自动化的解决方案。

如果您想了解有关报告功能的更多信息,我强烈推荐以下文章,

Google Developers,报告 – AdWords 脚本报告参考

Fred Vallaeys,Search Engine Land – 此脚本自动将任何 AdWords 数据添加到 Google 电子表格

进行出价调整

获得效果数据后,我们就可以开始计算新出价了! 在此示例中,我们将根据 CPA 在新列中使用基本公式进行调整。

接下来,我们将添加一个辅助列来定义哪些列发生了变化。

现在我们将制作一个新表来保存我们的更改,很明显,例如“要上传的关键字更改”。 我建议使用 query() 将所有更改的行返回到他们自己的工作表。 这样可以轻松地进入 AdWords 并限制我们必须编写的代码来选择正确的范围。

格式化上传

这需要几个步骤。 我们需要,

  1. 访问电子表格。
  2. 拉取数据。
  3. 将其格式化为bulkUpload 并构建一个文件
  4. 将文件推送到 AdWords。

访问电子表格很容易,我们将使用 URL 和文件名来访问工作表。

现在是稍微棘手的部分。 如果你不熟悉这个过程。 我们需要创建一个用于上传的 csv 文件。 我们已经有了要上传的行。 我们基本上将创建一个空白文件,然后用“要上传的关键字更改”表中的行填充它。

一旦我们建立了上传,我们离上传只有一行了。

创建备份日志

用户经常担心恢复更改的能力或系统运行异常。 这不太可能,但为了更加小心,我们可以制作一份副本并将其保存到我们的 Google Drive。

我建议提前创建一个文件夹。 从 URL 复制文件夹 ID 并将其插入到脚本中。 这可以防止您的顶级驱动器被副本填满,并有助于保持驱动器的整洁!

发送包含更改的电子邮件

电子邮件更新可帮助您和您的团队跟上变化并密切关注变化的幅度。 我们可以使用 emailApp 向团队成员发送电子邮件,以及一条简短的消息,其中包含指向我们在最后一步中创建的更改表的链接。 我们还可以对上传文件中的行进行快速计数,以计算出价更改的次数。

为了包含链接,我们将消息正文的格式设置为 HTML,添加一些中断并使其看起来更漂亮一些。

包起来

如果您要自动更新关键字数据,请继续安排脚本以自动推送更改。

如果您手动加载关键字数据,您仍然可以安排上传,但在更新数据后手动运行脚本会更有意义。

改进流程

有两个主要的改进途径。 您可以完全编写整个过程并删除电子表格部分。 这简化了步骤,如果您不需要工作表,可以使事情更容易管理。

使用更复杂的规则和决定更新您的投标表的第二个选项。 向您的出价规则添加更多变量、实施多种转化类型或包含第三方数据可以帮助您构建更有效的出价模型。

完整脚本

函数主(){

//投标更新的电子邮件
var email = [“[email protected]”];

//您预留的用于保存投标单副本的文件夹ID
// 从你的 Drive 文件夹 URL 的末尾拉取
varbidFolderId = ”;

//您的出价变更簿的网址
varbiddingWorkBookUrl = ”;

//打开工作簿
varbiddingWorkBook = SpreadsheetApp.openByUrl(biddingWorkBookUrl);

//带有出价更改的工作表
//字符串可以更新为你自己的文件名
var keywordBidUpload = brandBook.getSheetByName('要上传的关键字更改');

//获取要复制的sheet
var keywordBids = brandBook.getSheetByName('Keyword Bids');

//获取最后一行以计算出价更改次数。
var bidChangeCount = keywordBids.getLastRow()-1;

函数 createCopy(sheetObject) {
var destinationFolder = DriveApp.getFolderById(bidFolderId);
var file = DriveApp.getFileById(sheetObject.getId()).makeCopy(“Bid Copy –” + createDateString(), destinationFolder);
返回文件.getUrl();
}

var BrandCopy = createCopy(keywordBids);

功能uploadBids(表){
//为上传创建列名
var columns = [“广告系列”、“广告组”、“关键字”、“匹配类型”、“最大” 每次点击费用”];
//创建csv上传
var upload = AdWordsApp.bulkUploads().newCsvUpload(columns);
//从工作表中获取所有值
var values = sheet.getDataRange().getValues();
//转换工作表行并附加到上传文件
for(i=1; i < values.length; i++){
var 广告系列 = 值[i][0];
var ad_group = values[i][1];
var 关键字 = 值[i][2];
var match_type = values[i][3];
var max_cpc = values[i][4];

上传.追加({
“活动”:活动,
“广告组”:ad_group,
'关键字':关键字,
'匹配类型':match_type,
'最大限度。 每次点击费用':max_cpc});

};
};

上传投标(关键字投标上传);

//创建日期文本以附加到文件名
函数创建日期字符串(){
var newDate = new Date();
var 月份 = String(newDate.getMonth());
var day = String(newDate.getDate());
var year = String(newDate.getFullYear());
返回月+“-”+日+“-”+年;

}

var dateString = createDateString();

var subject =“帐户出价更改”+ dateString;

变量选项 = {
htmlBody :“您好,<br /><br /> 出价变更已实施。 <br /> <br /> 有” +
bidChangeCount + ”关键字出价变化。<br /> <br />” +
“更改和以前的设置可以在,<br /><br />” +
'<a href=\”' + 品牌复制 +
'”>品牌变化</a>';

}

MailApp.sendEmail(电子邮件,主题,”,选项)

}
//结束脚本