使用脚本调用API,在AdWords广告系列中使用外部数据 2016-09-09 13:19:10

$888.88
所属分类 :基金

2016年总统初选在美国如火如荼如果没有听到最新的民意调查结果,你真的不能去任何地方虽然这些民意调查确实存在缺点,但它们被广泛用于预测与选举有关的几乎所有事情或公共政策使用AdWords脚本,你应该做的事情和你可以做的事情我不确定这篇文章的主题在哪个范围内,但让我们戴上疯狂的科学家帽子并创造一种利用政治的方式在我们的AdWords广告系列中查询数据您可能永远不会想要做这样的事情,但在此过程中,我们将介绍一些更通用的技术以及为外部API调用创建包装器的陷阱(如果这些术语不是,请不要担心熟悉 - 我稍后会解释)这将使我们的代码保持清洁,更不用说易于分享和重用所以即使你从未计划在你的活动中使用政治数据,你也可以申请对您的业务非常重要的外部数据API的技术我们将用于查找此数据的API是Huffpost Pollster API这组免费的Web服务将为我们提供最新的政治轮询数据,以便我们将其合并到我们的脚本AdWords脚本的一个主要优点是能够使用URLFetchApp调用外部数据源(或URL)过去,我使用此功能来合并来自WeatherUnderground API,Salesforce API,Twilio API的数据我的脚本中的每一个都提供了一个API(应用程序接口),其形式为我们可以调用以请求数据或执行操作的一组URL

有时,这些URL称为端点当您访问Google或亚马逊,你正在向这些网址发送请求(googlecom和amazoncom),他们正在发回给你的浏览器页面显示在这些API的情况下,我们做的完全相同,但数据是以我们的AdWords脚本代码可以轻松使用的格式返回

这就是API包装器发挥作用的地方包装器只是您编写的一段可重用代码,可以让您更轻松地与自己和其他人进行交互一个好的思考方式这是想象将你的包装代码交给别人使用他们需要多少个问题才能让你开始使用

他们需要写多少代码才能使用你的包装器

一个好的包装器应该只需要很少的解释如果现在它仍然有点模糊就没关系它会变得更具体,因为我们实际编写代码我开始的目的是创建一个API包装器很少见时间我从一组单独的函数开始,都与相同的API有关,我稍后将其重构为包装器Pollster API非常简单,因为它实际上只包含一个端点和三个方法(图表,图表和轮询方法)让我们从调用Charts方法开始第一个与Charts方法交互的函数可能是这样的函数:首先,我们根据方法接受的参数构建一个请求URL(就像浏览器中的URL一样)然后我们使用URLFetchAppfetch()向该URL发出请求并返回它们发回的已解析响应尽管缺少错误检查,但此函数可以完成Charts方法的工作让我们继续到Chart方法步骤非常相似:从参数构建请求URL,向URL发出请求,然后解析并返回结果它是如此相似以至于一个好的起点是复制第一个方法并制作一个几乎没有更新,这正是这样的:现在我们有两个具有类似逻辑的函数访问相同的API此时开始考虑创建包装器可能是一个好主意在JavaScript中,将相关代码和属性组合在一起的一种方法是创建一个Object这不是一个编程课程,所以我不会深入了解有关基于对象的设计的细节所有你真正需要知道的是你的代码中的一个Object应该代表一个东西(以及所有的东西)与此事相关)在我们的例子中,事物是Pollster API,所以我们的Object将包含与它相关的所有东西因为我们已经有了一些将进入Object的函数,所以我们需要do是将它们包装成什么称为构造函数 之所以这样称呼是因为我们稍后会调用这个函数来“构造”一个​​新的API对象你会注意到我们需要更改两个函数getChart和getCharts的定义行那是因为这些函数现在被认为是我们刚才的HuffpostPollsterAPI对象的方法created A方法只是一个赋值给对象属性的函数构造函数,方法,属性

!好吧,所以语言可能会有点混乱,但我们不需要关注那个重要的是,与API交互的所有逻辑都“包装”在我们的新对象中我们的主要功能中的任何代码都可以简单创建一个HuffpostPollsterAPI对象的新实例然后调用getCharts和getChart函数没有必要了解与API交互的所有细节当我们在这里时,让我们继续并向该Object添加第三个也是最后一个方法来调用API的Polls方法我会给你一个提示:这些步骤非常类似于调用Charts方法现在,这是一些丑陋的代码,但它的工作原理请记住,这个包装器的主要目的是简化我们的主应用程序代码所以从这个API调用数据真的很容易因为方法的几乎所有参数都是可选的,如何用一个主题调用getPolls API

对我来说听起来很多解释,所以让它们对它们来说更容易一种处理这个问题的方法是将配置对象(或者有时是参数对象)传递给包含原始参数的方法作为其属性它听起来令人困惑,但你可能已经看过它之前没有意识到这里使用了以下是我们的代码在进行更改后的样子:因为我将配置对象发送到getCharts和getPolls函数,我可以将这些对象的处理概括为一个单独的函数调用buildQueryString使我的代码更清洁等等,为什么我们回到这个新的查询字符串函数的原始定义语法

因为该代码实际上只对我内部的API对象有用

使用我的对象的人不需要使用它甚至知道它存在使用原始语法使得此函数“私有”,因为它只对代码可用在API对象内部区分公共方法(在对象外部可用)和私有函数的一般做法是使用下划线开始所有私有函数现在代码看起来好多了,但仍有一些我们可以清理的东西这里是HuffpostPollsterAPI的最终版本现在我们有了包装器,所以让它开始工作我们的新包装器允许我们在Pollster API上找到每个候选项的当前轮询数据后再探索一下API,我发现在广告系列中使用这些数据之前需要考虑一些事项第一个是数据来源不同的来源有不同的投票方法,偏见和问题如果我我要运行这几个月,我想确保我使用一致的数据来源接下来,我想确保我使用最新的数据民意调查需要时间来运行,所以他们不是经常作为一些其他数据源我只想从我选择的源中获取最新数据当然,这是一个人为的例子,只能用于说明一些功能在获取最新的主要轮询数据后,代码看起来对于每个候选人的广告系列标签,并相应地设置桌面的出价调节系数如果您做到这一点,恭喜!我们能够构建一个完整的API包装器,现在可以在多个脚本中重用并与任何人共享我们了解何时将代码组合到对象中以及如何重构代码以使其更易于使用正如我所提到的在这篇文章的开头,我非常确定使用政治民意调查数据来管理您的营销活动属于疯狂的科学家类别,但是在您尝试本文中表达的观点之前您永远不会知道客座作者的观点,而不一定是搜索引擎土地工作人员的作者列于此处