如何找到特定关键字的 SearchImpressionShare?

How to find the SearchImpressionShare for a particular keyword?

可以使用 getAveragePositon() 方法轻松找到关键字的平均排名,但 SearchImpressionShare 无法使用此方法。

编辑

我试图通过查询数据来获取 SearchImpressionShare,但这给了我不一致的数据。

function main() {

  var keywordId = 297285633818;

  var last14dayStatsQuery = "SELECT Id, SearchTopImpressionShare FROM KEYWORDS_PERFORMANCE_REPORT  WHERE Id = "+keywordId+" DURING LAST_14_DAYS"

  var last14dayReport = AdWordsApp.report(last14dayStatsQuery);

  var last14dayRows = last14dayReport.rows();

  var last14dayRow = last14dayRows.next();

  Logger.log('Keyword: ' + last14dayRow['Id'] + ' SearchTopIS: ' + last14dayRow['SearchTopImpressionShare']);

}

例如,下面是我在 运行 两次相同代码后收到的两个输出。

输出 1:

10/16/2019 10:47:29 AM Keyword: 297285633818 SearchTopIS: 0.0

输出 2:

10/16/2019 10:47:45 AM Keyword: 297285633818 SearchTopIS: 0.17

关键字效果报告为您提供这些数据https://developers.google.com/adwords/api/docs/appendix/reports/keywords-performance-report#searchimpressionshare

示例使用:

function main () {
  var  query = "SELECT SearchImpressionShare, Criteria FROM KEYWORDS_PERFORMANCE_REPORT WHERE Clicks > 15 DURING YESTERDAY"
  var report = AdWordsApp.report(query)
  var rows = report.rows()
  while (rows.hasNext()) {
    var row = rows.next()
    Logger.log('Keyrword %s, Impressions Share %s', row['Criteria'], row['SearchImpressionShare'])
  }
}

更新: 请注意,如果您在多个广告组中使用相同的关键字,您会在报告中看到多行,每一行对应一个广告组。对于整个关键字列表,请使用以下方法:

function main() {

  var keywordId = 350608245287;
  var last14dayStatsQuery = "SELECT Id, SearchTopImpressionShare FROM KEYWORDS_PERFORMANCE_REPORT  WHERE Id = "+keywordId+" DURING LAST_14_DAYS"
  var last14dayReport = AdWordsApp.report(last14dayStatsQuery);
  var last14dayRows = last14dayReport.rows();
  while (last14dayRows.hasNext()) {
    var last14dayRow = last14dayRows.next();
    Logger.log('Keyword: ' + last14dayRow['Id'] + ' SearchTopIS: ' + last14dayRow['SearchTopImpressionShare']);
  }
}

您可能会发现将广告组参数添加到查询中很有用,例如 AdGroupNameAdGroupId.