下个月,谷歌广告脚本的新体验将启用,我必须调整我的脚本以使用它。
在我的脚本中,我寻找具有特定标签名称的活动:
var selector = AdsApp
.campaigns()
.withCondition("LabelNames CONTAINS_ALL ['my-label']")
有了新的体验,似乎必须使用标签的资源名称来完成由标签过滤所有活动的独特方式。
withCondition("campaign.labels CONTAINS ANY ('customers/1234567890/labels/123','customers/1234567890/labels/456')"). The value is a list of label resource names.
由于我不知道这个值,我发现的唯一方法是迭代启用的活动,获取标签,并检查我想要的标签是否存在。如果存在,我将继续执行代码。
有没有一种方法可以通过标签名称而不是资源名称来过滤活动?
这似乎是不可能的,所以我找到的唯一方法是首先获取标签资源名称,然后检索活动。
let label;
const labelIterator = AdsApp.labels().withCondition('label.name = "my_label"').get();
while (labelIterator.hasNext()) {
label = labelIterator.next();
}
const campaignIterator = AdsApp.campaigns()
.withCondition('campaign.status = ENABLED')
.withCondition(`campaign.labels CONTAINS ALL ('${label.getResourceName()}')`)
.get();
这样,我只执行两个请求,就可以获得我需要的活动。