Partilhar via


Exemplos de scripts para gerir anúncios

As secções seguintes mostram exemplos de scripts que efetuam várias ações em anúncios.

Nota

  • Atualize os anúncios de texto expandidos para anúncios de pesquisa reativos até 1 de fevereiro de 2023. Após esta data, deixará de poder criar anúncios de texto expandido novos ou editar existentes. Para obter mais informações, consulte Acerca dos anúncios de pesquisa reativos.
  • Os anúncios de texto expandido existentes continuarão a servir e poderá ver relatórios sobre o desempenho dos mesmos.
  • Continuará a poder colocar em pausa, ativar ou remover os anúncios de texto expandidos. Caso contrário, as tentativas de adicionar ou atualizar anúncios de texto expandido resultarão num CampaignServiceAdTypeInvalid erro.
  • Saiba mais sobre esta alteração.

Adicionar anúncios

Para adicionar um anúncio, obtenha primeiro o grupo de anúncios ao qual pretende adicionar o anúncio. Utilize o objeto AdGroupSelector para selecionar o grupo de anúncios. A utilização do withIds método proporciona um melhor desempenho do que transmitir o nome do grupo de anúncios no withCondition método .

Em seguida, chame o método newAd do grupo de anúncios para obter um construtor que utiliza para especificar as propriedades do anúncio. Ao contrário de outros tipos de entidade, o newAd método devolve um objeto AdBuilderSpace que contém métodos para obter o construtor para o tipo de anúncio que pretende criar. Este exemplo adiciona um anúncio de texto expandido, pelo que chama o expandedTextAdBuilder método para obter um construtor de anúncios de texto expandido.

Para anúncios de texto expandido, tem de especificar as seguintes propriedades:

  • Descrição
  • FinalUrl
  • HeadlinePart1
  • HeadlinePart2

A combinação destas propriedades define exclusivamente um anúncio de texto expandido. As outras propriedades são opcionais.

Chamar o método do build construtor cria o anúncio de forma assíncrona; Os scripts adicionam o anúncio em algum momento antes de o script terminar ou se chamar um dos métodos da operação de compilação. Para obter informações sobre este processo, consulte O que é um construtor?

function main() {
    var adGroupId = "AD GROUP ID GOES HERE";
    var adGroup = getAdGroup(adGroupId);

    if (adGroup != null) {

        // Get an expanded text ad builder, specify the ad's 
        // properties, and add the ad to the build queue.
        var operation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("AD COPY GOES HERE")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("AD TITLE PART 1 GOES HERE")
            .withHeadlinePart2("AD TITLE PART 2 GOES HERE")
            .build();

        if (!operation.isSuccessful()) {
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }
    }
    else {
        Logger.log(`Failed to get ad group, ${adGroupId}.`);
    }
}

function getAdGroup(id) {
    var adGroups = AdsApp.adGroups()
        .withIds([id])
        .get();

    if (adGroups.hasNext()) {
        return adGroups.next();
    }
    else {
        return null;
    }
}

Se existir um anúncio adicionado anteriormente com os mesmos valores para a combinação de campos necessários, o serviço não adiciona o anúncio, mas devolve o ID e o anúncio adicionados anteriormente. No entanto, se os mesmos anúncios forem processados na mesma fila de compilação, o segundo anúncio falhará com CampaignServiceDuplicateAd. Por exemplo, uma vez que os anúncios no exemplo seguinte são os mesmos, um deles falha.

    if (adGroup != null) {
        var adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);

        adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);
        
        for (var operation of operations) {
            if (!operation.isSuccessful()) {
                for (var error of operation.getErrors()) {
                    Logger.log(error);
                }
            }
        }
    }

Obter anúncios

Tem várias opções para obter anúncios consoante a sua localização na hierarquia.

Obter anúncios de um grupo de anúncios

Se tiver um objeto AdGroup , chame o método do ads objeto para obter a lista de anúncios que pertencem ao grupo de anúncios. Este exemplo obtém e imprime todos os anúncios no grupo, mas pode utilizar os métodos do seletor de anúncios para filtrar a lista de anúncios.

function main() {
    var adGroups = AdsApp.adGroups()
        .withIds(["AD GROUP ID GOES HERE"])
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();

        var ads = adGroup.ads().get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Obter anúncios de uma campanha

Se tiver um objeto Campanha , chame o método do ads objeto para obter a lista de anúncios que pertencem aos grupos de anúncios na campanha. Este exemplo utiliza o método do seletor de withCondition anúncios para filtrar a lista de anúncios para aqueles em grupos de anúncios que contêm o nome foo.

function main() {
    var campaigns = AdsApp.campaigns()
        .withIds(["CAMPAIGN ID GOES HERE"])
        .get();

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

        var ads = campaign.ads()
            .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
            .get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Obter todos os anúncios na conta

Para obter todos os anúncios numa conta, chame o ads método no objeto AdsApp . Pode utilizar os métodos do seletor de anúncios para filtrar a lista de anúncios para campanhas, grupos de anúncios ou com base no desempenho de anúncios. Este exemplo obtém todos os anúncios da conta.

function main() {
    var ads = AdsApp.ads().get();

    while (ads.hasNext()) {
        var ad = ads.next();

        if (ad.isType().expandedTextAd()) {
            var expandedAd = ad.asType().expandedTextAd();
        }
    }
} 

Colocar um anúncio em pausa

Para colocar um anúncio em pausa, chame o método do pause anúncio. Uma vez que o pause método está no objeto base do Ad , não precisa de obter primeiro o objeto derivado.

Se quiser ativar ou remover um anúncio, basta chamar o anúncio ou remove métodoenable. Para verificar se o anúncio está ativado ou em pausa, chame o isEnabled método ou isPaused .

Para obter anúncios com um estado específico, utilize o método do seletor de withCondition anúncios. Por exemplo, withCondition("Status = PAUSED).

function main() {
    var ads = AdsApp.ads()
        .forDateRange("LAST_WEEK")
        .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
        .withCondition('Status = ENABLED')
        .withCondition('Clicks < 5')
        .get();
 
    while (ads.hasNext()) {
        var ad = ads.next();
        ad.pause();
    }
}

Obter anúncios desaprovados

Para obter um exemplo que obtém anúncios desaprovados, veja Discover disapproved ads (Descobrir anúncios desaprovados).