用于管理标签的脚本示例
以下部分显示了针对标签执行各种操作的脚本示例。
向帐户添加标签
若要使用标签,请先将其添加到帐户。 最多可向帐户添加 100,000 个标签。 若要添加标签,请使用 createLabel 方法。 方法采用标签的名称、说明和背景色作为输入。
名称是必需的,但说明和颜色是可选的。 该名称区分大小写,不能超过 80 个字符,并且必须在帐户中唯一。 尽管颜色是可选的,但如果未指定,服务会为你选择随机颜色。 可以使用三字节十六进制数字指定颜色,格式 #RRGGBB (例如 CB0400) 或 16 个已知颜色名称之一(如红色、黄色和 aqua)。 如果指定颜色,则必须指定说明,但它可能是空字符串。
以下示例演示了三种调用 createLabel
方法的方法。
function main() {
AdsApp.createLabel("foo");
AdsApp.createLabel("bar", "a descriptive description", "aqua");
AdsApp.createLabel("foo foo", "", "#FF0000");
}
列出帐户的标签
若要获取帐户中的标签列表,请使用 labels 方法。 可以使用标准字符串运算符(如 =、CONTAINS 和 STARTS_WITH)按标签名称筛选列表。
function main() {
// Gets all the labels in the account
var accountLabels = AdsApp.labels()
.get();
Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);
// Gets all the labels in the account that contain foo in the name
accountLabels = AdsApp.labels()
.withCondition("Name CONTAINS 'foo'")
.get();
Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);
// Gets the first 15 labels in the account
accountLabels = AdsApp.labels()
.withLimit(15)
.get();
Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);
// Gets the first 15 labels in the account that contain foo in the name
accountLabels = AdsApp.labels()
.withCondition("Name CONTAINS 'foo'")
.withLimit(15)
.get();
Logger.log(`selector returned ${accountLabels.totalNumEntities()} labels that matched the selector's conditions`);
while (accountLabels.hasNext()){
var label = accountLabels.next();
}
}
将标签应用于关键字 (keyword)
仅当标签应用于关键字等实体时,标签才有用。 若要将标签应用于关键字 (keyword) ,请使用关键字 (keyword) 的 applyLabel 方法。 最多可以向关键字 (keyword) 应用 50 个标签。 方法采用标签名称作为输入。 标签的名称区分大小写,必须存在于帐户中,并且必须在关键字 (keyword) 中唯一。
以下示例演示如何向关键字 (keyword) 添加标签、列出关键字 (keyword) 标签以及从关键字 (keyword) 中删除标签。
function main() {
// Get a keyword to add labels to
var keyword = AdsApp.keywords().withIds(["12345"]).get().next();
// Print the keyword's existing labels
var labels = keyword.labels().get();
printLabels(labels);
// Add labels to the keyword
keyword.applyLabel("foo");
keyword.applyLabel("foo foo");
keyword.applyLabel("bar");
// Print the new list of labels
labels = keyword.labels().get();
printLabels(labels);
// Remove labels from the keyword
keyword.removeLabel("foo");
keyword.removeLabel("bar");
// Print the new list of labels
labels = keyword.labels().get();
printLabels(labels);
}
function printLabels(labels) {
Logger.log(`keyword has ${labels.totalNumEntities()} labels`);
while (labels.hasNext()){
var label = labels.next();
Logger.log(`name: ${label.getName()}
description: ${label.getDescription()}
color: ${label.getColor()}\n\n`);
}
}
获取包含任何指定标签的关键字
若要获取包含特定标签名称的关键字,请使用 KeywordSelector 对象的 withCondition () 方法。 使用 LabelNames 列名称按标签名称进行筛选。 可以指定一个或多个名称的数组。 名称区分大小写,必须完全匹配,并且必须存在于帐户中。 可以应用以下运算符:
- CONTAINS_ALL — 选择包含所有指定标签的关键字 (keyword)
- CONTAINS_ANY — 如果包含任何指定标签,则选择关键字 (keyword)
- CONTAINS_NONE - 选择关键字 (keyword) (如果它不包含任何指定标签)
请注意,如果帐户中不存在标签,则选择器将失败并返回错误。
function main() {
var keywords = AdsApp.keywords()
.withCondition('LabelNames CONTAINS_ANY ["foo", "bar"]')
.get();
while (keywords.hasNext()){
var keyword = keywords.next();
var labels = keyword.labels().get();
while (labels.hasNext()) {
var label = labels.next();
}
}
}