构建器
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
构建器是在 Google Ads 脚本中创建实体的标准方式。借助构建器,您可以同步或异步构建 Google Ads 实体。您还可以检查操作是否成功,并根据操作结果采取适当的措施。以下代码段展示了如何使用构建器创建关键字。
// Retrieve your ad group.
let adGroup = AdsApp.adGroups().get().next();
// Create a keyword operation.
let keywordOperation = adGroup.newKeywordBuilder()
.withCpc(1.2)
.withText("shoes")
.withFinalUrl("http://www.example.com/shoes")
.build();
// Optional: examine the outcome. The call to isSuccessful()
// will block until the operation completes.
if (keywordOperation.isSuccessful()) {
// Get the result.
let keyword = keywordOperation.getResult();
} else {
// Handle the errors.
let errors = keywordOperation.getErrors();
}
任何可以使用 Google Ads 脚本创建的实体都使用此构建器模式。
默认情况下,Google Ads 脚本会异步执行各项操作。这样一来,脚本就可以将您的操作分组为批次,从而实现高性能。不过,调用 Operation 方法(如 isSuccessful()
和 getResult()
)会强制 Google Ads 脚本清空其待处理操作列表,因此可能会导致性能不佳。请改为创建一个用于保存操作的数组,然后遍历该数组以检索结果。
性能不佳 |
性能良好 |
for (let i = 0; i < keywords.length; i++)
let keywordOperation = adGroup
.newKeywordBuilder()
.withText(keywords[i])
.build();
// Bad: retrieving the result in the same
// loop that creates the operation
// leads to poor performance.
let newKeyword =
keywordOperation.getResult();
newKeyword.applyLabel("New keywords");
}
|
// Create an array to hold the operations
let operations = [];
for (let i = 0; i < keywords.length; i++) {
let keywordOperation = adGroup
.newKeywordBuilder()
.withText(keywords[i])
.build();
operations.push(keywordOperation);
}
// Process the operations separately. Allows
// Google Ads scripts to group operations into
// batches.
for (let i = 0; i < operations.length; i++) {
let newKeyword = operations[i].getResult();
newKeyword.applyLabel("New keywords");
}
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-27。
[null,null,["最后更新时间 (UTC):2025-08-27。"],[[["\u003cp\u003eBuilders are the standard way to create entities in Google Ads Scripts, offering synchronous and asynchronous options with success checks.\u003c/p\u003e\n"],["\u003cp\u003eThe builder pattern is utilized for creating any entity within Google Ads scripts.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Ads scripts default to asynchronous operations for performance, but retrieving results immediately can hinder this; it's recommended to batch operations for efficiency.\u003c/p\u003e\n"],["\u003cp\u003eInstead of retrieving results directly after each operation, store operations in an array and process them separately to enhance script performance by allowing for batching.\u003c/p\u003e\n"]]],[],null,["# Builders are the standard way to create entities in Google Ads scripts. Builders allow\nyou to build a Google Ads entity either synchronously or asynchronously. You\ncan also check whether the operation was successful or not, and take\nappropriate actions depending on the operation's outcome. The following code\nsnippet shows how to create a keyword using a builder. \n\n // Retrieve your ad group.\n let adGroup = AdsApp.adGroups().get().next();\n\n // Create a keyword operation.\n let keywordOperation = adGroup.newKeywordBuilder()\n .withCpc(1.2)\n .withText(\"shoes\")\n .withFinalUrl(\"http://www.example.com/shoes\")\n .build();\n\n // Optional: examine the outcome. The call to isSuccessful()\n // will block until the operation completes.\n if (keywordOperation.isSuccessful()) {\n // Get the result.\n let keyword = keywordOperation.getResult();\n } else {\n // Handle the errors.\n let errors = keywordOperation.getErrors();\n }\n\nAny entity that can be created using Google Ads scripts does so using this builder\npattern.\n\nPerformance considerations\n--------------------------\n\nBy default, Google Ads scripts executes its operations asynchronously. This\nallows scripts to group your operations as batches, and achieve high\nperformance. However, calling the\n[Operation](/google-ads/scripts/docs/reference/adsapp/adsapp_sitelinkoperation)\nmethods like\n[`isSuccessful()`](/google-ads/scripts/docs/reference/adsapp/adsapp_sitelinkoperation#isSuccessful)\nand\n[`getResult()`](/google-ads/scripts/docs/reference/adsapp/adsapp_sitelinkoperation#getResult)\nforces Google Ads scripts to flush its pending operations list, and thus may lead to\npoor performance. Instead, create an array to hold the operations, then iterate\nthrough that array to retrieve the results.\n\n| Poor performance | Good performance |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ```transact-sql for (let i = 0; i \u003c keywords.length; i++) let keywordOperation = adGroup .newKeywordBuilder() .withText(keywords[i]) .build(); // Bad: retrieving the result in the same // loop that creates the operation // leads to poor performance. let newKeyword = keywordOperation.getResult(); newKeyword.applyLabel(\"New keywords\"); } ``` | ```transact-sql // Create an array to hold the operations let operations = []; for (let i = 0; i \u003c keywords.length; i++) { let keywordOperation = adGroup .newKeywordBuilder() .withText(keywords[i]) .build(); operations.push(keywordOperation); } // Process the operations separately. Allows // Google Ads scripts to group operations into // batches. for (let i = 0; i \u003c operations.length; i++) { let newKeyword = operations[i].getResult(); newKeyword.applyLabel(\"New keywords\"); } ``` |"]]