2013年7月1日,星期一

广告系列和关键字效果报告

老板要求您汇总的许多每日或每周报告任务都可以使用AdWords辽宁福利彩票中心自动执行。我的一位读者通过了以下要求辽宁福利彩票中心的请求,该辽宁福利彩票中心可以节省他每天的时间,并将其一些绩效报告汇总在一起。也许它也可以节省您一些时间。

以下辽宁福利彩票中心将构建具有五个标签的Google Spreadsheet:
  1. 过去7天的广告系列效果摘要
  2. 迄今为止的广告系列效果月份
  3. 上个月的广告系列效果
  4. 过去7天的关键字效果摘要
  5. 过去7天的每日关键字效果

您需要做的就是创建一个 新的Google电子表格 并将网址粘贴到辽宁福利彩票中心中。然后,您可以安排此辽宁福利彩票中心每天运行,并在早上开始工作时,将刷新所有数据。

谢谢,
拉斯

/************************************
* Campaign and Keyword Summary Report
* Version: 1.2
* Changelog v1.2 - Fixed INVALID_PREDICATE_ENUM_VALUE
* ChangeLog v1.1 - Removed  api Version from  报告   呼叫 
* Created By:  拉斯  Savage
* FreeAdWordsScripts.com
************************************/
var SPREADSHEET_URL = "PASTE GOOGLE SPREADSHEET URL HERE";

function main() {
  //These names are important. change them with caution
  var tabs = ['camp_perf_7_days','camp_perf_mtd','camp_perf_last_month','keyword_perf_7_days','keyword_perf_7_days_daily'];
  for(var i in tabs) {
    var results = runQuery(tabs[i]);
    writeToSpreadsheet(tabs[i],results);
  }
}

//Helper function to get or  创造  the 电子表格
function getSheet(tab) {
  var s_sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet;
  try {
    sheet = s_sheet.getSheetByName(tab);
    if(!sheet) {
      sheet = s_sheet.insertSheet(tab, 0);
    }
  } catch(e) {
    sheet = s_sheet.insertSheet(tab, 0);
  }
  return sheet
}

//Function to write the rows of the report to the sheet
function writeToSpreadsheet(tab,rows) {
  var to_write =  兑换 RowsToSpreadsheetRows(tab,rows);
  var s_sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = getSheet(tab);
  sheet.clear();
  
  var numRows = sheet.getMaxRows();
  if(numRows < to_write.length) {
    sheet.insertRows(1,to_write.length-numRows); 
  }
  var range = sheet.getRange(1,1,to_write.length,to_write[0].length);
  range.setValues(to_write);
}

//A generic function used to build and run the report query
function runQuery(tab) {
  var API_VERSION = { includeZeroImpressions : false };
  var cols = getColumns(tab);
  var report = getReport(tab);
  var date_range = getDateRange(tab);
  var where = getWhereClause(tab);
  var query = ['select',cols.join(','),'from',report,where,'during',date_range].join(' ');
  var report_iter = AdWordsApp.report(query, API_VERSION).rows();
  var rows = [];
  while(report_iter.hasNext()) { 
    rows.push(report_iter.next());
  }
  return rows;
}
 
//This function will  兑换  row data into a format easily pushed into a 电子表格
function  兑换 RowsToSpreadsheetRows(tab,rows) {
  var cols = getColumns(tab);
  var ret_val = [cols];
  for(var i in rows) {
    var r = rows[i];
    var ss_row = [];
    for(var x in cols) {
      ss_row.push(r[cols[x]]);
    }
    ret_val.push(ss_row);
  }
  return ret_val;
}

//Based on the tab name, this returns the report type to use for the query
function getReport(tab) {
  if(tab.indexOf('camp_') == 0) {
    return 'CAMPAIGN_PERFORMANCE_REPORT';
  }
  if(tab.indexOf('keyword_') == 0) {
    return 'KEYWORDS_PERFORMANCE_REPORT';
  }
  throw new Exception('tab name not recognized: '+tab);
}

//Based on the tab name, this returns the where clause for the query
function getWhereClause(tab) {
  if(tab.indexOf('camp_') == 0) {
    return 'where CampaignStatus = ENABLED';
  }
  if(tab.indexOf('keyword_') == 0) {
    return 'where CampaignStatus = ENABLED and AdGroupStatus = ENABLED and Status = ENABLED';
  }
  throw new Exception('tab name not recognized: '+tab);
}

//Based on the tab name, this returns the columns to  广告 d into the report
function getColumns(tab) {
  var ret_array = [];
  if(tab.indexOf('daily') >= 0) {
    ret_array.push('Date');
  }
  ret_array.push('CampaignName');
  ret_array.push('CampaignStatus');
  
  if(tab.indexOf('keyword_') == 0) {
    ret_array = ret_array.concat(['AdGroupName',
                                  'AdGroupStatus',
                                  'Id',
                                  'KeywordText',
                                  'KeywordMatchType']);
  }
  return ret_array.concat(['Clicks',
                           'Impressions',
                           'Ctr',
                           'AverageCpc',
                           'Cost',
                           'AveragePosition',
                           'Conversions',
                           'ConversionRate',
                           'ConversionValue']);
}

//Based on the tab name, this returns the date range for the data.
function getDateRange(tab) {
  if(tab.indexOf('7_days') >= 0) {
    return 'LAST_7_DAYS';
  }
  if(tab.indexOf('mtd') >= 0) {
    return 'THIS_MONTH';
  }
  if(tab.indexOf('last_month') >= 0) {
    return 'LAST_MONTH';
  }
  throw new Exception('tab name not recognized: '+tab);
}

24条评论:

  1. It’提供了非常好的信息和更真实的事实。感谢您分享这些信息。 700-651考试练习测试

    回复 删除
  2. 肯德基客户满意度调查。我们重视您的坦率评论,并感谢您抽出宝贵的时间来完成我们的调查。 肯德基客户调查

    回复 删除
  3. HealthFusion登录-登录帐户时遇到麻烦了,没问题,这是完整的分步技术。 Healthfusion登录

    回复 删除
  4. TuTuApp 只是一个了不起的应用程序商店,您可以从这里免费下载所有内容。 TuTuApp 适用于Android和iOS设备。 TuTuApp

    回复 删除
  5. 如果您正在寻找MyAARPMedicare登录指南和奖励的完整过程,请忘记密码,联系方式,计划,电话号码和其他内容。 www myaarpmedicare com


    回复 删除
  6. 不知道如何格式化您的研究论文? 跟随这个链接 并学习!

    回复 删除

  7. 这是您需要了解有关Dogpile Web搜索,www Dogpile com搜索平台及其有趣功能的所有信息。 狗狗搜索引擎




    回复 删除

  8. 这是您碧昂斯传记,她的臀部,胸罩尺寸和其他身体尺寸的快速指南。在这里阅读有关碧昂斯的所有内容。 碧昂斯身高


    回复 删除
  9. MyAARP医疗保险 是美国最受欢迎的医疗保险计划之一。 MyAARP医疗保险计划受欢迎的主要原因是其服务质量以及客户所获得的奖励/好处。

    回复 删除
  10. 我可能会建议在代码的最后一个值上出现循环错误。有人注意到吗? 2048下载

    回复 删除
  11. 泰米尔洛克人 2020下载最新的宝莱坞或好莱坞电影 泰米尔洛克人

    回复 删除
  12. 这是一个非常好的网站帖子。实际上,不会像您刚才那样有太多人。令我印象深刻的是,有关该主题的大量信息被发现,您’上了这么多课,我们已经尽力而为。 将命令发送到程序时出现问题

    回复 删除

  13. 我真的很喜欢阅读您的文章。我想告诉您,您中有像我这样的人,对您的工作表示赞赏。 短信轰炸机

    回复 删除
  14. 每个周末,我都会快速访问该网站,因为我’d喜欢娱乐,因为此网站的构想肯定是挑剔的素材。
    本地网页设计公司

    回复 删除