Esempi di script per la gestione degli annunci

Le sezioni seguenti mostrano esempi di script che eseguono varie azioni sugli annunci.

Nota

  • Aggiornare gli annunci di testo espansi in annunci di ricerca reattivi entro il 1° febbraio 2023. Dopo questa data, non sarà più possibile creare nuovi annunci di testo espansi né modificare quelli esistenti. Per altre informazioni, vedere Informazioni sugli annunci di ricerca reattivi.
  • Gli annunci di testo espansi esistenti continueranno a essere visualizzati e sarà possibile visualizzare i relativi report sulle prestazioni.
  • Sarà comunque possibile sospendere, abilitare o rimuovere gli annunci di testo espansi. In caso contrario, i tentativi di aggiungere o aggiornare gli annunci di testo espansi restituiranno un CampaignServiceAdTypeInvalid errore.
  • Altre informazioni su questo cambiamento.

Aggiungere annunci

Per aggiungere un annuncio, ottenere prima di tutto il gruppo di annunci a cui si desidera aggiungere l'annuncio. Usare l'oggetto AdGroupSelector per selezionare il gruppo di annunci. L'utilizzo del withIds metodo consente di ottenere prestazioni migliori rispetto al passaggio del nome del gruppo di annunci nel withCondition metodo.

Quindi, chiama il metodo newAd del gruppo di annunci per ottenere un generatore da usare per specificare le proprietà dell'annuncio. A differenza di altri tipi di entità, il newAd metodo restituisce un oggetto AdBuilderSpace che contiene i metodi per ottenere il generatore per il tipo di annuncio che si desidera creare. In questo esempio viene aggiunto un annuncio di testo espanso, quindi viene chiamato il expandedTextAdBuilder metodo per ottenere un generatore di annunci di testo espanso.

Per gli annunci di testo espansi è necessario specificare le proprietà seguenti:

  • Descrizione
  • URL finale
  • Parte 1 titolo
  • Parte 2 titolo

La combinazione di queste proprietà definisce in modo univoco un annuncio di testo espanso. Le altre proprietà sono facoltative.

La chiamata al metodo del build generatore crea l'annuncio in modo asincrono; Script aggiunge l'annuncio in un momento precedente al termine dello script o se si chiama uno dei metodi dell'operazione di compilazione. Per informazioni su questo processo, vedere Che cos'è un builder?

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 è presente un annuncio aggiunto in precedenza con gli stessi valori per la combinazione di campi obbligatori, il servizio non aggiunge l'annuncio ma restituisce l'annuncio e l'ID aggiunti in precedenza. Tuttavia, se gli stessi annunci vengono elaborati nella stessa coda di compilazione, il secondo annuncio avrà esito negativo con CampaignServiceDuplicateAd. Ad esempio, poiché gli annunci nell'esempio seguente sono identici, uno di essi ha esito negativo.

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

Visualizzare annunci

Sono disponibili diverse opzioni per ottenere gli annunci a seconda della posizione in cui ci si trova nella gerarchia.

Ottenere annunci da un gruppo di annunci

Se si dispone di un oggetto AdGroup , chiamare il metodo dell'oggetto ads per ottenere l'elenco degli annunci che appartengono al gruppo di annunci. In questo esempio vengono recuperati e stampati tutti gli annunci del gruppo, ma è possibile usare i metodi del selettore annunci per filtrare l'elenco degli annunci.

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

Ottenere annunci da una campagna

Se si dispone di un oggetto Campaign , chiamare il metodo dell'oggetto ads per ottenere l'elenco degli annunci che appartengono ai gruppi di annunci nella campagna. Questo esempio usa il metodo del selettore annunci withCondition per filtrare l'elenco degli annunci in base a quelli nei gruppi di annunci che contengono il 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();
            }
        }
    } 
}

Inserire tutti gli annunci nell'account

Per ottenere tutti gli annunci in un account, chiamare il ads metodo nell'oggetto AdsApp . È possibile usare i metodi del selettore di annunci per filtrare l'elenco di annunci in base a campagne, gruppi di annunci o in base alle prestazioni degli annunci. In questo esempio vengono recuperati tutti gli annunci dall'account.

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

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

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

Sospendere un annuncio

Per sospendere un annuncio, chiamare il metodo dell'annuncio pause . Poiché il pause metodo si trova nell'oggetto Ad di base, non è necessario ottenere prima l'oggetto derivato.

Se si desidera abilitare o rimuovere un annuncio, è sufficiente chiamare l'annuncio enable o remove il metodo. Per verificare se l'annuncio è abilitato o sospeso, chiamare il isEnabled metodo OR isPaused .

Per ottenere annunci con uno stato specifico, utilizzare il metodo del selettore annunci withCondition . Ad esempio, 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();
    }
}

Ricevere annunci non approvati

Per un esempio che riceve annunci non approvati, vedere Individuazione degli annunci non approvati.