Exemplos de scripts para gerir grupos de anúncios

As seções a seguir mostram exemplos de scripts que executam várias ações em grupos de anúncios.

Adicionar grupos de anúncios

Para adicionar um grupo de anúncios, primeiro obtenha a campanha à qual adicionar o grupo de anúncios. Use o objeto CampaignSelector para selecionar a campanha. Usar o withIds método proporciona um desempenho melhor do que passar o nome da campanha no withCondition método.

Em seguida, chame o método newAdGroupBuilder da campanha para obter um construtor que você usa para especificar as propriedades do grupo de anúncios. A única propriedade necessária é o nome do grupo de anúncios (consulte o withName método), que deve ser exclusivo dentro da campanha. Se não especificar um valor de CPC, o valor de lance mínimo será predefinido para a moeda da sua conta. Só é necessário especificar o idioma se a campanha não o especificar; caso contrário, herda o valor linguístico da campanha. Por padrão, o status do grupo de anúncios é pausado.

Chamar o método do construtor cria o grupo de build anúncios de forma assíncrona; Os scripts adicionam o grupo de anúncios em algum momento antes do script terminar 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 campaign to add the ad groups to.
    // IDs in Scripts are string integers.
    var campaignId = 'CAMPAIGN ID GOES HERE';  
    var campaign = getCampaign(campaignId);

    // Ad groups to add.
    var adGroups = [];
    adGroups.push({
        name : 'AD GROUP NAME GOES HERE',
        cpc : 2.25,
        language : 'English' // Required if the campaign doesn't specify a language
    });
    adGroups.push({
        name : 'AD GROUP NAME GOES HERE',
        cpc : 1.25,
        language : 'English' // Required if the campaign doesn't specify a language
    });

    var operations = [];

    if (campaign != null)
    {
        for (var adGroup of adGroups) {
            var operation = addAdGroup(
                campaign, 
                adGroup.name, 
                adGroup.cpc, 
                adGroup.language);
            operations.push(operation);
        }
    }
    else {
        Logger.log("Unable to retrieve campaign, " + campaignId);
    }

    checkBuildStatus(operations, adGroups);
}

// Get the campaign using its ID.
function getCampaign(id) {
    var iterator = AdsApp.campaigns()
        .withIds([id])
        .get();

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

// Add the ad group to the specified campaign.
// Returns the builder's operation object, which you use to 
// check the status of the add operation.
function addAdGroup(campaign, name, cpc, language) {

    return campaign.newAdGroupBuilder()
        .withName(name)
        .withCpc(cpc)
        .withLanguage(language)
        .build();
}

// Check the ad group's build status.
function checkBuildStatus(operations, adGroups) {

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

Obter todos os grupos de anúncios

Para obter todos os grupos de adGroups anúncios em uma conta, primeiro chame o método do objeto AdsApp para obter o seletor. Em seguida, chame o método do get seletor para obter um iterador que você usa para iterar pela lista de grupos de anúncios. Como o exemplo não especifica filtros, o seletor retorna todos os grupos de anúncios na conta. Para determinar o número de grupos de anúncios no iterador, chame o método do totalNumEntities iterador.

function main() {
    // Gets all ad groups in the account.
    var iterator = AdsApp.adGroups().get();
    
    // Iterates through the list of ad groups and logs 
    // each ad group's name.
    while (iterator.hasNext()) {
        var adGroup = iterator.next();
    }
}

Obter um grupo de anúncios por nome

Para obter um grupo de anúncios pelo nome, primeiro chame o método do adGroups objeto AdsApp para obter o seletor. O seletor contém vários métodos de filtro que você usa para filtrar a lista de grupos de anúncios. Use o withCondition método para filtrar os grupos de anúncios de um nome de grupo de anúncios específico. Observe que os operandos e operadores diferenciam maiúsculas de minúsculas.

Em seguida, chame o método do get seletor para obter o iterador. Os nomes dos grupos de anúncios dentro de uma campanha são exclusivos, mas é possível que várias campanhas tenham grupos de anúncios com o mesmo nome. Por isso, se você filtrar apenas por nome, o iterador poderá conter mais de um grupo de anúncios.

Se quiser obter um grupo de anúncios pelo nome de uma campanha específica, inclua um withCondition método que especifique o nome da campanha (CampaignName = '<campaignnamegoeshere>').

function main() {
    // The name of the ad group to get.
    var adGroupName = 'AD GROUP NAME GOES HERE';

    // Get the ad groups with the specified name.
    var iterator = AdsApp.adGroups()
          .withCondition(`Name = '${adGroupName}'`)
          .get();

    // Need a loop because multiple campaigns can have 
    // an ad group with the same name.
    while (iterator.hasNext()) {
        var adGroup = iterator.next();
    }
}

Obter grupo de anúncios por ID

Se você tiver acesso ao ID do grupo de anúncios, use-o em vez disso. 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']).

function main() {
    var adGroupId = '12345';

    var iterator = AdsApp.adGroups()
        .withIds([adGroupId])
        .get();

    if (iterator.hasNext()) {
        var adGroup = iterator.next();
    }
}

Obter grupo de anúncios por nome de uma campanha específica

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

    var iterator = AdsApp.adGroups()
        .withCondition(`Name = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    if (iterator.hasNext()) {
        var adGroup = iterator.next();
    }
}

Obter os dados de desempenho de um grupo de anúncios

Para obter as métricas de desempenho de um grupo de anúncios, chame o método getStats do grupo de anúncios. Ao obter o grupo de anúncios, 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, use um dos métodos ao selecionar o grupo de forDateRange anúncios (consulte AdGroupSelector).

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';

    // Get the ad group. You need to specify the date range of the
    // performance data you want to get.
    var iterator = AdsApp.adGroups()
        .forDateRange('LAST_WEEK')
        .withCondition(`Name = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();
    
    // If the ad group is found, log some metrics.
    if (iterator.hasNext()) {
        var adGroup = iterator.next();
        var metrics = adGroup.getStats(); // Gets the performance metrics.
    }
}

Colocar um grupo de anúncios em pausa

Quando você adiciona um grupo de anúncios, seu status é Pausado por padrão. Para habilitar o grupo de anúncios, chame o método do grupo de enable anúncios. Para alterar o status do grupo de anúncios para Em pausa, chame o método do grupo de pause anúncios. Para determinar o status do grupo de anúncios, chame os métodos , e isRemoved do grupo de isEnabledisPausedanúncios.

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

    // Get the ad group. 
    var iterator = AdsApp.adGroups()
        .withCondition(`Name = '${adGroupName}'`)
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

    if (iterator.hasNext()) {
        var adGroup = iterator.next();
        adGroup.pause();
    }
}