最大限度地减少Google AdWords Script的响应时间
Minimize response time from Google AdWords Script
在Google脚本中,建议将操作存储在数组中,然后在构造完所有操作后调用方法,以最大程度地减少每次调用服务时的响应时间。
例如在 AdWords 中:
脚本 A
var adGroupBuilder = campaign.newAdGroupBuilder();
for (i = 0; i < 1000; i++) {
var adGroupOperation = adGroupBuilder
.withName(i.toString())
.build();
}
var adGroups = adGroupOperation.getResult(); // method call
在不到一秒的时间内执行。
脚本 B
var adGroupBuilder = campaign.newAdGroupBuilder();
for (i = 0; i < 1000; i++) {
var adGroupOperation = adGroupBuilder
.withName(i.toString())
.build();
var adGroups = adGroupOperation.getResult(); // method call
}
在近 6 分钟内执行。
在AdWords中,一个AdGroup
可以有多个Ads
,并且为了创建一个Ad
必须有一个相应的AdGroup
。
有一个外部 API,它以每批 15 000 个实体返回大约 1000 个实体,为此我正在开发一个 Google 脚本,将这些实体转换为具有相应Ads
的AdGroups
。显然,对其服务进行如此多的单独调用会导致超时错误。因此,我想将它们分解为 15 个调用,每个调用包含 1000 个实体。
现在,我想知道是否可以将Ads
添加到方法 getResults()
调用的操作数组中,或者是否需要实例化AdGroup
对象才能为其创建Ad
?
因为如果没有,我认为别无选择,只能为我想变成Ad
的每个实体单独调用AdWords服务,但是响应时间会非常高,并且需要不同的结构。
我通过将操作推送到数组中然后按照此处的建议对其进行迭代来解决它。
脚本 C
var adGroupBuilder = campaign.newAdGroupBuilder();
var operations = [];
for (i = 0; i < 1000; i++) {
var adGroupOperation = adGroupBuilder
.withName(i.toString())
.build();
operations.push(adGroupOperation);
}
for (var i = 0; i < operations.length; i++) {
var adGroup = operations[i].getResult();
var adOperation = adGroup.newTextAdBuilder()
.withHeadline("headline of ad")
.withDescription1("first line of ad description")
.withDescription2("second line of ad description")
.withDisplayUrl("www.example.com")
.withDestinationUrl("http://www.example.com")
.build();
}
var ad = adOperation.getResult();
大约在 8 秒内执行。
但是,我仍然不确定为什么这会更快,因为仍然有 1000 个个人拨打这个坏男孩的服务电话:operations[i].getResult()
.我认为这与谷歌如何处理他们那端的电话有关,也许是通过捕捉?
如果有人能分享一些关于这一点的启示,将不胜感激!
相关文章:
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 我如何在jQuery.Ajax中处理时间响应(DataType:JSON)
- 如何用java计算网站的响应时间
- 最大限度地减少Google AdWords Script的响应时间
- 如何使用javascript记录两次按钮按下之间的响应时间(以秒为单位)
- 如何测量 http.NodeJS 中的 ClientRequest 响应时间
- Web API处于非活动状态5分钟后响应时间过长
- REST API测量服务器端响应时间(性能)
- 使用Heroku进行套接字轮询时响应时间长
- Microsoft Face Api响应时间
- 更改offline.js中允许的服务器响应时间
- 如何在redux框架中使用Action和Reducer记录响应时间
- 如何调用“请等待”只有当ajax的响应时间超过X毫秒时才使用
- PHP HttpRequest创建网页-如何处理长响应时间
- 聊天机器人回答/响应时间代码在js
- 有没有办法限制Node (Express)中的速度和响应时间?
- 当URL具有相同的响应时间时,为什么某些AJAX调用比其他调用需要更长的时间才能完成
- 正在测量服务器响应时间(客户端)
- 有没有办法要求Apache Bench测试提供给URL的所有资源的响应时间