javascript - AWQL(AdWords 查询语言)寻求多范围查询(各种)

标签 javascript mysql reporting dynamic-queries

好吧,这可能是一个“你到底在问什么”的问题,所以请耐心等待。通常,我是 .NET 和 SQL 开发人员。我正在使用 AWQL 尝试获取 adwords 脚本来制作量身定制的报告。 简短版本,我需要从不同的日期范围中提取数据,而且我在弄清楚他们的“编译器”如何处理它或者甚至可能这样做时遇到了问题。简而言之,我需要将两个月的数据分别编译成一份报告。现在我在想语法错误,但不确定。 极客术语的最终目标是达到“WHERE(IMPRESSIONS_FROM_THIS_MONTH > IMPRESSIONS_FROM_LAST_MONTH) AND (IMPRESSIONS_FROM_LAST_MONTH > MONTH_BEFORE_THAT)”的效果。理论上所有输出都相同(不管它是记录器还是直接到谷歌文档。我确实有代码将其放入电子表格并将链接通过电子邮件发送给我),但目前正在努力让它提取数据。我所说的努力是指几天的失败,哈哈。

"SELECT KeywordText, ConversionValue, Id, QualityScore " +
  "FROM KEYWORDS_PERFORMANCE_REPORT " +
   "WHERE " +
   "Id = " + kw +
   " AND CampaignId = " + id +
   " AND AdGroupId = " + gName +
   " AND Impressions" +
   " (DURING 20150101, 20150131) > IMPRESSIONS (DURING 20141201, 20141231)" );             

(顺便说一下,像 gName 这样的变量在完整代码中存在,并且在我尝试复合逻辑之前一直在工作)我不确定最好的方法是一次全部查询,还是单独查询并以某种方式将结果拼接成一份报告。 AdWords 脚本似乎比我习惯的要严格得多,而且它的一些规则没有得到很好的记录或解释。 任何与此相关的链接或代码块?在此先感谢您的帮助!

最佳答案

这段代码应该有所帮助。根据您的目的替换所有变量。

var daterange1 ="Specify daterange here";
var dateRange2 ="Specify daterange here"; 
    function main(){      
      var sheet = getSheet();
      var AccountIterator = MccApp.accounts().forDateRange(dateRange).withIds(ACCOUNTS).get();
      while(AccountIterator.hasNext()){
        var Account = AccountIterator.next();


        MccApp.select(Account);
            getAccountDetails(sheet);
            getAccountDetails2(sheet)

          }

    }



       function getAccountDetails(sheet){
          var query = "SELECT  Device, CampaignName, ConversionValue, Cost, Conversions " +" FROM CAMPAIGN_PERFORMANCE_REPORT " +"WHERE Impressions > 0 " +" DURING "+dateRange;
          Logger.log(query);
          var report = AdWordsApp.report(query);
          report.exportToSheet(sheet);
        }

    function getAccountDetails2(sheet){
          var query = "SELECT  Device, CampaignName, ConversionValue, Cost, Conversions " +" FROM CAMPAIGN_PERFORMANCE_REPORT " +"WHERE Impressions > 0 " +" DURING "+dateRange;
          Logger.log(query);
          var report = AdWordsApp.report(query);
          report.exportToSheet(sheet);
        }

        function getSheet(){
          var spreadsheet = SpreadsheetApp.openByUrl(url);
          var sheet=spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]);

      return sheet;
    }

我不会对其进行优化,因为它是您自己完成的一个很好的练习。但这将解决您的问题。

关于javascript - AWQL(AdWords 查询语言)寻求多范围查询(各种),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225792/

相关文章:

javascript - 没有新运算符的错误

javascript - 如何为两个或多个按钮使用 javascript 代码

mysql - 如何过滤列基础条件SQL

elasticsearch - 反对将 Elasticsearch 用作 OLAP 多维数据集的原因

javascript - 在 jquery 中切换 div 背景之前加载图像

javascript - Node.js http 和 bing 搜索 api

python - 使用 Python 从 MySQLdb 中提取条目

PHPExcel 不提供来自 Mysql 的所有数据

java - Java 中精确布局的点阵快速打印

c# - 如何在 Silverlight 4 中打印报告