Compartir a través de


Ejemplos de script para administrar palabras clave

En las secciones siguientes se muestran ejemplos de scripts que realizan diversas acciones con palabras clave.

Agregar palabras clave

Para agregar una palabra clave, primero obtenga el grupo de anuncios al que agregar la palabra clave. Use el objeto AdGroupSelector para seleccionar el grupo de anuncios. El uso del withIds método proporciona un mejor rendimiento que pasar el nombre del grupo de anuncios en el withCondition método .

A continuación, llame al método newKeywordBuilder del grupo de anuncios para obtener un generador que use para especificar las propiedades de la palabra clave. La única propiedad que debe especificar es el texto de la palabra clave (consulte el withText método ). El texto debe incluir el tipo de coincidencia (comillas para el tipo de coincidencia de frase, corchetes para el tipo de coincidencia exacto, nada para el tipo de coincidencia amplia).

Si no especifica un valor de CPC, el valor predeterminado es el valor de CPC del grupo de anuncios. De forma predeterminada, el estado de la palabra clave está habilitado.

Al llamar al método del build generador, se crea la palabra clave de forma asincrónica; Los scripts agregan la palabra clave en algún momento antes de que finalice el script o si llama a uno de los métodos de la operación de compilación. Para obtener información sobre este proceso, consulte ¿Qué es un generador?

function main() {
    // The ID of the ad group to add the keywords to.
    // IDs in Scripts are string integers.
    var adGroupId = 'AD GROUP ID GOES HERE';  
    var adGroup = getAdGroup(adGroupId);

    // Keywords to add. Update as appropriate.
    var keywords = [];
    keywords.push({
        text : "keyword 1",
        cpc : 1.25,
        finalUrl : 'http://www.example.com'
    });
    keywords.push({
        text : "keyword 2",
        cpc : 1.5,
        finalUrl : 'http://www.example.com'
    });

    var operations = [];

    if (adGroup != null)
    {
        for (var keyword of keywords) {
            var operation = addKeyword(
                adGroup, 
                keyword.text, 
                keyword.cpc, 
                keyword.finalUrl);
            operations.push(operation);
        }
    }
    else {
        Logger.log("Unable to retrieve ad group, " + adGroupId);
    }

    checkBuildStatus(operations, keywords);
}

// Get the ad group using its ID.
function getAdGroup(id) {
    var iterator = AdsApp.adGroups()
        .withIds([id])
        .get();

    // Return the ad group if it exists; otherwise, null.
    if (iterator.hasNext()) {
        return iterator.next();
    }
    else {
        return null;
    }
}

// Add the keyword to the specified ad group.
function addKeyword(adGroup, text, cpc, finalUrl) {

    return adGroup.newKeywordBuilder()
        .withText(text)
        .withCpc(cpc)
        .withFinalUrl(finalUrl)
        .build();
}

// Check the keyword's build status.
function checkBuildStatus(operations, keywords) {

    for (var i = 0; i < operations.length; i++) {
        if (!operations[i].isSuccessful()) {
            for (var error of operations[i].getErrors()) {
                Logger.log(`Failed to add, ${keywords[i].text}. Error: ${error}`);
            }
        }
    }
}

Pausar una palabra clave

Al agregar una palabra clave, su estado es Habilitado de forma predeterminada. Para pausar la palabra clave, llame al método de la pause palabra clave. Para determinar el estado de la palabra clave, llame a los métodos y isPaused de isEnabled las palabras clave.

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';
    var keywordText = 'KEYWORD TEXT GOES HERE';

    var iterator = AdsApp.keywords()
        .withCondition(`Text = '${keywordText}'`)
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    while (iterator.hasNext()) {
        var keyword = iterator.next();
        keyword.pause();
    }
}

Obtener todas las palabras clave de un grupo de anuncios

Para obtener todas las palabras clave de un grupo de anuncios, llame primero al método del keywords objeto AdsApp para obtener el selector. Use el withCondition método para especificar el grupo de anuncios y la campaña. A continuación, llame al método del get selector para obtener un iterador que se usa para recorrer en iteración la lista de palabras clave. Para determinar el número de palabras clave en el iterador, llame al método del totalNumEntities iterador.

Si tiene acceso a los identificadores de palabra clave, úselos en su lugar. El uso de identificadores para obtener entidades proporciona un mejor rendimiento. En lugar de usar el método de withCondition filtro, use el withIds método . Por ejemplo, withIds(['12345']). Hay límites en el número de entidades que puede recuperar mediante identificadores.

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';

    var iterator = AdsApp.keywords()
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();
        
    while (iterator.hasNext()) {
        var keyword = iterator.next();
    }
}

Obtención de todas las palabras clave en una cuenta

Hay un límite en el número de palabras clave que los scripts pueden devolver para una cuenta. El límite no está definido y puede cambiar. En el ejemplo siguiente se muestra cómo puede controlar los casos en los que una cuenta tiene demasiadas palabras clave. En el ejemplo se intenta capturar primero todas las palabras clave en el nivel de cuenta. Si se produce un error debido al error "Hay demasiadas entidades", intenta realizar varias llamadas para capturar palabras clave por campaña, ya que normalmente hay menos entidades en el nivel de campaña.

Para obtener información sobre el uso de la palabra clave yield , consulte Uso de la palabra clave yield al obtener grandes conjuntos de entidades.

function* getEntities() {
    const applyConditions = _ => _
        .withCondition('CampaignStatus = ENABLED')
        .withCondition('AdGroupStatus = ENABLED')
        .withCondition('Status = ENABLED')
        .withCondition("CombinedApprovalStatus = DISAPPROVED");

    try {
        // Get the account's keywords. 
        const keywords = applyConditions(AdsApp.keywords()).get();

        while (keywords.hasNext()) {
            yield keywords.next();
        }
    } catch (e) {
        if (!e.message.startsWith('There are too many entities')) {
            throw e;
        }

        // If there are too many keywords at the account level,
        // get keywords by campaigns under the account.
        const campaigns = AdsApp.campaigns().get();

        while (campaigns.hasNext()) {
            const campaign = campaigns.next();

            const keywords = applyConditions(campaign.keywords()).get();

            while (keywords.hasNext()) {
                yield keywords.next();
            }
        }
    }
}

Obtención de los datos de rendimiento de una palabra clave

Para obtener las métricas de rendimiento de una palabra clave, llame al método getStats de la palabra clave. Al obtener la palabra clave , debe especificar el intervalo de fechas de los datos de métricas que desea. Puede especificar el intervalo de fechas mediante un literal predefinido, como LAST_MONTH o TODAY, o una fecha de inicio y finalización. Para especificar el intervalo de fechas, use uno de los forDateRange métodos al seleccionar la palabra clave (consulte KeywordSelector).

Para obtener una lista de las métricas a las que puede acceder, consulte el objeto Stats .

function main() {
    var campaignName = 'CAMPAIGN NAME GOES HERE';
    var adGroupName = 'AD GROUP NAME GOES HERE';
    var keywordText = 'KEYWORD TEXT GOES HERE';

    // Get the keyword. You need to specify the date range of the
    // performance data you want to get.
    var iterator = AdsApp.keywords()
        .forDateRange('LAST_WEEK')
        .withCondition(`Text = '${keywordText}'`)
        .withCondition(`AdGroupName = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    // If the keyword is found, log some metrics.
    if (iterator.hasNext()) {
        var keyword = iterator.next();
        var metrics = keyword.getStats(); // Gets the performance metrics.
    }
}

Actualice el valor de puja de una palabra clave.

Para obtener un ejemplo que muestra cómo actualizar el valor de puja de una palabra clave, consulte Llamada a servicios de Google.