2013年5月3日,星期五

使用脚本将AdWords数据放入Amazon S3

我不确定您的身份,但是编写所有这些脚本会使我陷入Google Spreadsheet重载的境地。随着访问任何AdWords报告功能的发布,数据很快开始变得难以处理。一旦事情超过了数千行,我就更喜欢使用Excel或在数据库中存储和处理数据。

因此,我在寻找其他方法来从脚本世界中的AdWords报告中获取数据,因此我想到了 亚马逊S3。亚马逊通过其亚马逊网络服务提供了RESTful API,使您可以从云中存储和检索大量数据。我认为我可以使用它们存储帐户/广告系列/关键字性能的一些CSV文件,以便以后通过其他脚本或软件进行下载或处理。

下面的脚本尝试封装构建和授权适当的S3放置请求所需的所有逻辑。我遵循找到的文档 这里.

要免费开始使用,请注册 亚马逊S3在这里 并在此处找到您的访问权限和密钥:


接下来,创建一个新的S3存储桶以通过AWS控制台保存所有数据。填写以下详细信息,然后尝试测试文件。理想情况下,您可以将其与其他AdWords之一结合使用 报告 剧本 在这里找到开始将您的数据存储在云中。

注意:这是一组非常特定的功能,代表将文件放入Amazon S3所需的最低限度信息。有关更多信息,请查看完整的 亚马逊S3文件.

Thanks,
拉斯

//-----------------------------------
// Put Data To 亚马逊S3
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
var ACCESS_KEY = 'YOUR_ACCESS_KEY_HERE';
var SECRET_KEY = 'YOUR_SECRET_KEY_HERE';
var S3_BUCKET = 'YOUR_S3_BUCKET_NAME_HERE';
  

function main() {
  var date_str = Utilities.formatDate(new Date(),AdWordsApp.currentAccount().getTimeZone(),'yyyy-MM-dd');
  var file_name = 'adwords_keyword_perf_'+date_str+'.csv';
  putDataToBucket(S3_BUCKET,'/'+file_name,'this is where the data from an AdWords report would go.');
}


function putDataToBucket(bucket,file_path,data) {
  var auth_options = {  
    method : 'PUT',
    base_url : "http://" + bucket + ".s3.amazonaws.com",
    s3_bucket : bucket,
    path : file_path,
    headers : { 
       "Date" : getDate(),
       "Content-Type" : "application/x-www-form-urlencoded"
    },
  };
  
  var auth_string = generateAuthString(auth_options);
  auth_options.headers["Authorization"] = auth_string;
  
  var options = {
    method : auth_options.method,
    headers : auth_options.headers,
    payload : data
  };
  
  return (UrlFetchApp.fetch(auth_options.base_url+auth_options.path, options).getResponseCode() == 200);
}

//Generates an AWS Auth String
//For more info, see the AWS docs - http://goo.gl/m5nCe
function generateAuthString(url) {
  var string_to_sign =  getStringToSign(url);
  Logger.log(string_to_sign);
  var signature = getSignature(SECRET_KEY,string_to_sign);
  return "AWS" + " " + ACCESS_KEY + ":" + signature;
}

//Generates an AWS Signature
//For more info, see the AWS docs - http://goo.gl/m5nCe
function getSignature(SECRET_KEY,string_to_sign) {
  return  Utilities.base64Encode(
    Utilities.computeHmacSignature(
      Utilities.MacAlgorithm.HMAC_SHA_1,
      string_to_sign,
      SECRET_KEY,
      Utilities.Charset.UTF_8
    )
  );
}

//Generates an AWS string to sign
//For more info, see the AWS docs - http://goo.gl/m5nCe
function getStringToSign(url,params) {
  var method = url.method;
  var date = url.headers.Date;
  
  return method + "\n" + "\n" + 
    url.headers['Content-Type'] + "\n" +
    date + "\n" + 
    getCanonicalizedAmzHeaders(url);
}

//Generates the Canonicalized Amazon Headers (not really)
//For more info, see the AWS docs - http://goo.gl/m5nCe
function getCanonicalizedAmzHeaders(url) {
  var ret_val = "/" + url.s3_bucket;
  ret_val += url.path;
  return ret_val;
}

function getDate() {
  return Utilities.formatDate(new Date(),"GMT", "EEE, dd MMM yyyy HH:mm:ss +0000");
}

37条评论:

  1. 我现在正在搜索此博客,其中包含有关此主题的非常有用的信息,我通过阅读您的博客收集了一些信息
    Adyar的AWS培训
    AWS在Porur中的培训
    AWS OMR培训
    钦奈的AWS课程
    金奈的AWS培训
    Devyps培训在Adyar
    OMR中的Devops培训
    T Nagar的Devops培训

    回复删除
  2. 感谢您提供有关AWS的安全性挑战的信息丰富的帖子,发现它很有用。云迁移服务现在已变得安全无风险

    云迁移服务

    AWS云迁移服务

    Azure云迁移服务

    回复删除
  3. 我浏览了您的帖子,发现对您很有帮助。期待看到您的更多帖子。
    Vmware云迁移服务

    数据库迁移服务

    回复删除
  4. 这个博客的写作方式给我留下了深刻的印象。作者以简洁明了的方式分享了这些信息。
    利亚基础设施

    回复删除
  5. 对于许多客户来说,我们都是成功故事的一部分'成功的云迁移。
    云迁移服务


    最佳云迁移工具

    回复删除
  6. 直截了当的事实是,没有多少组织可以选择与亚马逊抗衡。那为什么麻烦呢?购买亚马逊交通

    回复删除
  7. 作家与他的读者和他的作品确实做到了平等。
    下载Alexa应用

    回复删除
  8. 结合进入供应商的经验'作为第一个国际市场,公司可以将计划转变为将来进入新市场的政策或程序。 点击

    回复删除
  9. 我不久前才到达这个惊人的网站。实际上,您被这里的资源所吸引。竖起大拇指来制作如此精彩的博客页面! mp3歌曲

    回复删除
  10. 好的信息,有价值的优秀设计,以及与优秀的思想和观念共享的好东西,很多好的信息和灵感,我都需要这两个东西,这要感谢这里提供的有用信息。 pagalworld音乐

    回复删除
  11. 像这样的工具使他们能够筛查土地的各个部分,并进一步帮助他们在由于排泄物少,低噪音等问题而成为问题之前,对影响产量的事物进行管理。 班加罗尔的数据分析课程

    回复删除
  12. 一个非常棒的博客文章。我们非常感谢您的博客文章。访问您的帖子后,您会发现很多方法。 阿德蒙·李(Admond Lee)

    回复删除
  13. 在维修设备之前,是否需要为设备或专卖店服务电话支付前期费用以及详细的估算,或者在最终账单上对设备进行全面维修时将全部费用总计吗? 洛杉矶的物业管理

    回复删除
  14. 在积极的网站上,您从哪里获得了此帖子的信息?我现在已经阅读了您网站上的一些文章,我真的很喜欢您的风格。谢谢您一百万,请继续努力。 anaconda安装tensorflow

    回复删除
  15. 您在这里提出了许多要点,以至于我几次阅读您的文章。您的意见大部分都符合我的观点。对于您的读者来说,这是很棒的内容。 负面反馈

    回复删除
  16. 这些只是技术产品如何为您省钱的几个例子。 技术

    回复删除
  17. 保持良好的工作状态,我在该网站上读了几篇文章,并且我认为您的博客非常有趣,并且提供了许多很棒的信息。 buzzoid instagram喜欢

    回复删除
  18. 很高兴与您聊天,我似乎希望收到更可靠的文章,我想我们都希望感谢这么多优秀的文章,可以与我们分享博客。 网络套件数据输入

    回复删除
  19. 理论上,第一阶段的准备工作应不受随后产生的声音的预期强度和持续时间的影响。然而,实际上,三个阶段是如此迅速地完成,以至于钢琴家很少有能力在演奏上分别考虑每个阶段。 数据录入簿记

    回复删除
  20. 通过将您收到的服务外包到印度,可以充分享受节省高达70%的业务运营成本的优势。数据输入可能看起来像是业务的枢纽,尽管它看起来似乎很容易管理和处理,但这涉及许多需要系统处理的流程 簿记数据输入

    回复删除
  21. 通过将您收到的服务外包到印度,可以充分享受节省高达70%的业务运营成本的优势。数据输入可能看起来像是业务的枢纽,尽管它看起来似乎很容易管理和处理,但这涉及许多需要系统处理的流程。 簿记数据输入

    回复删除
  22. 你在这里写的非常好点..很棒的东西...我想你'提出了一些真正有趣的观点。继续做好工作。
    古瓦哈蒂的360digitmg Python课程培训

    回复删除
  23. 考虑到所有的事情,我将向您透露;我调查的众多组织出于各种意图和目的共享了很多东西。美国数据录入

    回复删除
  24. 最后,有些组织需要完成大量数据输入, 将数据录入外包给印度 您可以访问他们的网站并注册他们的计划,以获取稳定的工作和收入。

    回复删除
  25. 一个好的博客总是会提供新的令人兴奋的信息,而在阅读的同时,我感到这个博客确实具有使一个博客成为一个博客的所有素质。 库存数据输入

    回复删除
  26. 此外,他们不断扩展的内容网络,高级报告和分析功能以及它们在全球主要搜索引擎中的地位'越来越多的公司正在寻找专业的AdWords服务也就不足为奇了。 广告 words专家

    回复删除
  27. 使用URL缩短器有哪些好处?也许主要的好处是,较短的URL易于复制到电子邮件,论坛帖子或Twitter上的帖子中,其中整个帖子的张贴者限制为140个字符。 最便宜的网址缩短器

    回复删除