0

我创建了一个脚本,将活动结果导出到 Google 表格文件。当我在9月29日实现脚本时,数据完美导出。请参见下面的示例(请注意,最后四个数字是右对齐的,因为它们是数字)。

帐户描述名称 活动名称 展示次数 搜索印象分享 热门印象百分比 绝对最高印象百分比
2019-03-01 帐户名称 广告系列名称 2800 90.82% 0.73 0.73

然而,两周前的输出发生了一些变化。TopImpressionPercentage 和 AbsoluteTopImpressionPercentage 列的导出方式不同。

帐户描述名称 活动名称 展示次数 搜索印象分享 热门印象百分比 绝对最高印象百分比
2019-03-01 帐户名称 广告系列名称 2800 90.82% 0.73 0.73

这里的问题是 TopImpressionPercentage 和 AbsoluteTopImpressionPercentage 具有不同的单元格属性。Google 表格不会将这些单元格视为数字,而是视为文本(我猜)。现在,此导出的目标是我们根据这些数字自动在不同的工作表中进行计算。这些自动计算现在失败了,因为这两列不再起作用。手动更改 Google 表格中的单元格属性不是解决方案。

我不知道这是如何改变的。我没有对脚本进行任何更改。我尝试将脚本运行到不同的 Google 表格文件,但没有任何区别。

这是脚本。对于不正确的缩进,我深表歉意,但这里的重点是脚本包含的元素。

function main(){
var sheetURL = 'URL';
var tabName = 'Tabname';

var QUERIES = [{'query' : 'SELECT Month, AccountDescriptiveName, CampaignName, Labels, '
            + 'Impressions, Clicks, Cost, Conversions, SearchImpressionShare, TopImpressionPercentage, AbsoluteTopImpressionPercentage '
            + 'FROM CAMPAIGN_PERFORMANCE_REPORT '
            + 'WHERE Impressions > 0 '
            + 'DURING 20190101,20220101', 
              'spreadsheetUrl' : sheetURL,
              'tabName' : tabName,
              'reportVersion' : 'v201809'
       }            
      ];

  var query;
  var spreadsheetUrl;
  var tabName;
  var reportVersion;

 for(var i in QUERIES) {
  var queryObject = QUERIES[i];
  query = queryObject.query;
  spreadsheetUrl = queryObject.spreadsheetUrl;
  tabName = queryObject.tabName;
  reportVersion = queryObject.reportVersion;
 }

  var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
  var sheet = spreadsheet.getSheetByName(tabName);
  var report = AdWordsApp.report(query, {apiVersion: reportVersion});
  report.exportToSheet(sheet);
}

我是从 Google Ads Scrips Direct Support 转发的,因为在Campaign Performance Report中一切正常。因为“ Google Ads 脚本利用 Google Apps 脚本的电子表格将报告实际提取到您的电子表格中”,所以他们建议我联系Apps 脚本团队

我希望你能帮助我。

先感谢您。

4

1 回答 1

0

您可以轻松解析这些值,使它们最终匹配您计算所需的类型。

Apps Script 的问题在于,当使用 时getValue,该方法最终会返回一个类型为NumberBooleanDateString的值,具体取决于单元格的值。因此,如果单元格确实被格式化为存储 typetext的值,则脚本中返回的值将是 type String

要解决此问题,只需执行以下操作:

var topImpressionPercentage = Number(rangeTop.getValue());
var absoluteTopImpressionPercentage = Number(rangeAbs.getValue());

参考

于 2021-10-25T11:05:41.347 回答