Compartir a través de


Ejemplos de scripts para administrar etiquetas

En las secciones siguientes se muestran ejemplos de scripts que realizan diversas acciones en las etiquetas.

Agregar etiquetas a una cuenta

Para usar etiquetas, agréguelas primero a su cuenta. Puede agregar un máximo de 100 000 etiquetas a una cuenta. Para agregar una etiqueta, use el método createLabel . El método toma como entrada el nombre, la descripción y el color de fondo de la etiqueta.

El nombre es obligatorio, pero la descripción y el color son opcionales. El nombre distingue mayúsculas de minúsculas, no puede superar los 80 caracteres y debe ser único dentro de la cuenta. Aunque el color es opcional, si no lo especifica, el servicio elige un color aleatorio. Puede especificar el color mediante un número hexadecimal de tres bytes en el formulario #RRGGBB (por ejemplo, CB0400) o uno de los 16 nombres de color conocidos, como rojo, amarillo y aqua. Si especifica un color, debe especificar una descripción, pero puede ser una cadena vacía.

En el ejemplo siguiente, se muestran tres maneras de llamar al createLabel método .

function main() {

    AdsApp.createLabel("foo");
    AdsApp.createLabel("bar", "a descriptive description", "aqua");
    AdsApp.createLabel("foo foo", "", "#FF0000");

}

Enumerar las etiquetas de una cuenta

Para obtener una lista de etiquetas en una cuenta, use el método labels . Puede filtrar la lista por el nombre de la etiqueta mediante los operadores de cadena estándar como =, CONTAINS y 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 una etiqueta a una palabra clave

Las etiquetas solo son útiles si las aplica a entidades como palabras clave. Para aplicar una etiqueta a una palabra clave, use el método applyLabel de la palabra clave. Puede aplicar un máximo de 50 etiquetas a una palabra clave. El método toma como entrada el nombre de la etiqueta. El nombre de la etiqueta distingue mayúsculas de minúsculas, debe existir en la cuenta y debe ser único dentro de la palabra clave .

En el ejemplo siguiente se muestra cómo agregar etiquetas a una palabra clave, enumerar las etiquetas de la palabra clave y quitar etiquetas de una palabra clave.

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`);
    }
}

Obtener palabras clave que contengan cualquiera de las etiquetas especificadas

Para obtener palabras clave que contienen nombres de etiqueta específicos, use el método withCondition() del objeto KeywordSelector. Use el nombre de columna LabelNames para filtrar por nombres de etiqueta. Puede especificar una matriz de uno o varios nombres. Los nombres distinguen mayúsculas de minúsculas, deben coincidir exactamente y deben existir en la cuenta. Puede aplicar los operadores siguientes:

  • CONTAINS_ALL: selecciona la palabra clave si contiene todas las etiquetas especificadas.
  • CONTAINS_ANY: selecciona la palabra clave si contiene cualquiera de las etiquetas especificadas.
  • CONTAINS_NONE: selecciona la palabra clave si no contiene ninguna de las etiquetas especificadas.

Tenga en cuenta que si la etiqueta no existe en la cuenta, el selector produce un error y devuelve un error.

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();
        }
    }

}