Esempi di script per la gestione delle etichette
Le sezioni seguenti illustrano esempi di script che eseguono varie azioni per le etichette.
Aggiungere etichette a un account
Per usare le etichette, aggiungerle prima all'account. È possibile aggiungere un massimo di 100.000 etichette a un account. Per aggiungere un'etichetta, usare il metodo createLabel . Il metodo accetta come input il nome, la descrizione e il colore di sfondo dell'etichetta.
Il nome è obbligatorio, ma la descrizione e il colore sono facoltativi. Il nome fa distinzione tra maiuscole e minuscole, non può superare gli 80 caratteri e deve essere univoco all'interno dell'account. Anche se il colore è facoltativo, se non lo si specifica, il servizio sceglie automaticamente un colore casuale. È possibile specificare il colore usando un numero esadecimale di tre byte nel formato #RRGGBB (ad esempio, CB0400) o uno dei 16 nomi di colore noti, ad esempio rosso, giallo e acqua. Se si specifica un colore, è necessario specificare una descrizione, ma potrebbe essere una stringa vuota.
Nell'esempio seguente vengono illustrati tre modi per chiamare il createLabel
metodo .
function main() {
AdsApp.createLabel("foo");
AdsApp.createLabel("bar", "a descriptive description", "aqua");
AdsApp.createLabel("foo foo", "", "#FF0000");
}
Elencare le etichette di un account
Per ottenere un elenco di etichette in un account, usare il metodo labels . È possibile filtrare l'elenco in base al nome dell'etichetta usando gli operatori stringa standard, ad esempio =, 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();
}
}
Applicare un'etichetta a una parola chiave
Le etichette sono utili solo se vengono applicate a entità come parole chiave. Per applicare un'etichetta a una parola chiave, usare il metodo applyLabel della parola chiave. È possibile applicare un massimo di 50 etichette a una parola chiave. Il metodo accetta come input il nome dell'etichetta. Il nome dell'etichetta fa distinzione tra maiuscole e minuscole, deve esistere nell'account e deve essere univoco all'interno della parola chiave .
Nell'esempio seguente viene illustrato come aggiungere etichette a una parola chiave, elencare le etichette della parola chiave e rimuovere le etichette da una parola chiave.
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`);
}
}
Ottenere parole chiave che contengono una qualsiasi delle etichette specificate
Per ottenere parole chiave che contengono nomi di etichetta specifici, usare il metodo withCondition() dell'oggetto KeywordSelector. Usare il nome della colonna LabelNames per filtrare in base ai nomi delle etichette. È possibile specificare una matrice di uno o più nomi. I nomi fanno distinzione tra maiuscole e minuscole, devono corrispondere esattamente e devono esistere nell'account. È possibile applicare gli operatori seguenti:
- CONTAINS_ALL: seleziona la parola chiave se contiene tutte le etichette specificate
- CONTAINS_ANY: seleziona la parola chiave se contiene una delle etichette specificate
- CONTAINS_NONE: seleziona la parola chiave se non contiene nessuna delle etichette specificate
Si noti che se l'etichetta non esiste nell'account, il selettore ha esito negativo e restituisce un errore.
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();
}
}
}