Exemplos de scripts para gerir etiquetas
As secções seguintes mostram exemplos de scripts que efetuam várias ações em relação a etiquetas.
Adicionar etiquetas a uma conta
Para utilizar etiquetas, primeiro adicione-as à sua conta. Pode adicionar um máximo de 100 000 etiquetas a uma conta. Para adicionar uma etiqueta, utilize o método createLabel . O método utiliza como entrada o nome, a descrição e a cor de fundo da etiqueta.
O nome é obrigatório, mas a descrição e a cor são opcionais. O nome é sensível a maiúsculas e minúsculas, não pode exceder os 80 carateres e tem de ser exclusivo na conta. Embora a cor seja opcional, se não a especificar, o serviço escolhe uma cor aleatória para si. Pode especificar a cor utilizando um número hexadecimal de três bytes no formulário #RRGGBB (por exemplo, CB0400) ou um dos 16 nomes de cores conhecidos, como vermelho, amarelo e aqua. Se especificar uma cor, tem de especificar uma descrição, mas pode ser uma cadeia vazia.
O exemplo seguinte mostra três formas de chamar o createLabel
método .
function main() {
AdsApp.createLabel("foo");
AdsApp.createLabel("bar", "a descriptive description", "aqua");
AdsApp.createLabel("foo foo", "", "#FF0000");
}
Listar as etiquetas de uma conta
Para obter uma lista de etiquetas numa conta, utilize o método de etiquetas . Pode filtrar a lista pelo nome da etiqueta com os operadores de cadeia padrão, tais como =, CONTAINS e 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();
}
}
Aplicar uma etiqueta a uma palavra-chave
As etiquetas só são úteis se as aplicar a entidades como palavras-chave. Para aplicar uma etiqueta a uma palavra-chave, utilize o método applyLabel da palavra-chave. Pode aplicar um máximo de 50 etiquetas a uma palavra-chave. O método utiliza como entrada o nome da etiqueta. O nome da etiqueta é sensível às maiúsculas e minúsculas, tem de existir na conta e tem de ser exclusivo na palavra-chave.
O exemplo seguinte mostra como adicionar etiquetas a uma palavra-chave, listar as etiquetas da palavra-chave e remover etiquetas de uma palavra-chave.
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`);
}
}
Obter palavras-chave que contenham qualquer uma das etiquetas especificadas
Para obter palavras-chave que contenham nomes de etiquetas específicos, utilize o método comCondition() do objeto KeywordSelector. Utilize o nome da coluna LabelNames para filtrar por nomes de etiquetas. Pode especificar uma matriz de um ou mais nomes. Os nomes são sensíveis a maiúsculas e minúsculas, têm de corresponder exatamente e têm de existir na conta. Pode aplicar os seguintes operadores:
- CONTAINS_ALL — seleciona a palavra-chave se esta contiver todas as etiquetas especificadas
- CONTAINS_ANY — seleciona a palavra-chave se esta contiver qualquer uma das etiquetas especificadas
- CONTAINS_NONE — seleciona a palavra-chave se não contiver nenhuma das etiquetas especificadas
Tenha em atenção que, se a etiqueta não existir na conta, o seletor falha e devolve um erro.
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();
}
}
}