Exemplos de scripts para gerir palavras-chave

As seções a seguir mostram exemplos de scripts que executam várias ações em palavras-chave.

Adicionar palavras-chave

Para adicionar uma palavra-chave, primeiro obtenha o grupo de anúncios ao qual adicionar a palavra-chave. Use o objeto AdGroupSelector para selecionar o grupo de anúncios. O uso do withIds método oferece melhor desempenho do que passar o nome do grupo de anúncios no withCondition método.

Em seguida, chame o método newKeywordBuilder do grupo de anúncios para obter um construtor que você usa para especificar as propriedades da palavra-chave. A única propriedade que você deve especificar é o texto da palavra-chave (consulte o withText método). O texto deve incluir o tipo de correspondência (aspas para o tipo de correspondência de expressão, parênteses retos para o tipo de correspondência exata, nada para o tipo de correspondência ampla).

Se você não especificar um valor CPC, ele será padronizado para o valor CPC do grupo de anúncios. Por predefinição, o estado da palavra-chave está ativado.

Chamar o método do build construtor cria a palavra-chave de forma assíncrona; Os scripts adicionam a palavra-chave em algum momento antes que o script seja encerrado ou se você chamar um dos métodos da operação de compilação. Para obter informações sobre esse processo, consulte O que é um construtor?

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

Colocar uma palavra-chave em pausa

Quando adiciona uma palavra-chave, o estado da mesma é Ativado por predefinição. Para pausar a palavra-chave, chame o método da pause palavra-chave. Para determinar o status da palavra-chave, chame as palavras-chave isEnabled e isPaused métodos.

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

Obter todas as palavras-chave num grupo de anúncios

Para obter todas as palavras-chave em um grupo de anúncios, primeiro chame o método do keywords objeto AdsApp para obter o seletor. Use o withCondition método para especificar o grupo de anúncios e a campanha. Em seguida, chame o método do get seletor para obter um iterador que você usa para iterar através da lista de palavras-chave. Para determinar o número de palavras-chave no iterador, chame o método do totalNumEntities iterador.

Se tiver acesso aos IDs de palavras-chave, utilize-os em alternativa. O uso de IDs para obter entidades proporciona melhor desempenho. Em vez de usar o withCondition método filter, use o withIds método. Por exemplo, withIds(['12345']). Existem limites para o número de entidades que pode obter através de IDs.

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

Obter todas as palavras-chave numa conta

Existe um limite para o número de palavras-chave que os Scripts podem devolver para uma conta. O limite é indefinido e pode mudar. O exemplo a seguir mostra como você pode lidar com casos em que uma conta tem muitas palavras-chave. O exemplo tenta obter todas as palavras-chave no nível da conta primeiro. Se isso falhar devido ao erro "Há muitas entidades", ele tenta fazer várias chamadas para buscar palavras-chave por campanha, já que normalmente há menos entidades no nível da campanha.

Para obter informações sobre como usar a palavra-chave rendimento , consulte Usar a palavra-chave rendimento ao obter 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();
            }
        }
    }
}

Obter os dados de desempenho de uma palavra-chave

Para obter as métricas de desempenho de uma palavra-chave, chame o método getStats da palavra-chave. Ao obter a palavra-chave, você precisa especificar o intervalo de datas dos dados de métricas desejados. Pode especificar o intervalo de datas através de um literal predefinido, como LAST_MONTH ou HOJE ou uma data de início e de fim. Para especificar o intervalo de datas, utilize um dos métodos quando seleciona forDateRange a palavra-chave (consulte KeywordSelector).

Para obter uma lista de métricas que você pode acessar, consulte o 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.
    }
}

Atualizar o valor de lance de uma palavra-chave.

Para obter um exemplo que mostra como atualizar o valor de lance de uma palavra-chave, consulte Chamando os serviços do Google.