Exemples de script pour la gestion des annonces

Les sections suivantes présentent des exemples de scripts qui effectuent diverses actions sur des publicités.

Remarque

  • Mettez à niveau vos annonces de texte étendu vers des annonces de recherche réactives d’après le 1er février 2023. Après cette date, vous ne pourrez plus créer ou modifier des annonces textuelles développées existantes. Pour plus d’informations, consultez À propos des annonces de recherche réactives.
  • Les annonces textuelles développées existantes continueront de servir et vous pourrez afficher des rapports sur leurs performances.
  • Vous pourrez toujours suspendre, activer ou supprimer vos annonces texte développées. Dans le cas contraire, les tentatives d’ajout ou de mise à jour d’annonces de texte développées se solderont par une CampaignServiceAdTypeInvalid erreur.
  • En savoir plus sur cette modification.

Ajouter des annonces

Pour ajouter une annonce, commencez par obtenir le groupe d’annonces auquel vous souhaitez ajouter l’annonce. Utilisez l’objet AdGroupSelector pour sélectionner le groupe d’annonces. L’utilisation de cette withIds méthode offre de meilleures performances que la transmission du nom du groupe d’annonces dans la withCondition méthode.

Appelez ensuite la méthode newAd du groupe d’annonces pour obtenir un générateur que vous utilisez pour spécifier les propriétés de l’annonce. Contrairement aux autres types d’entités, la newAd méthode renvoie un objet AdBuilderSpace qui contient des méthodes pour obtenir le générateur pour le type d’annonce que vous souhaitez créer. Cet exemple ajoute une annonce de texte développée, de sorte qu’il appelle la expandedTextAdBuilder méthode permettant d’obtenir un générateur d’annonces de texte développées.

Pour les annonces de texte développées, vous devez spécifier les propriétés suivantes :

  • Description
  • Url finale
  • HeadlinePart1
  • HeadlinePartie 2

La combinaison de ces propriétés définit de manière unique une annonce de texte développée. Les autres propriétés sont facultatives.

L’appel de la méthode du constructeur crée l’annonce build de manière asynchrone ; Scripts ajoute l’annonce à un moment donné avant la fin du script ou si vous appelez l’une des méthodes de l’opération de génération. Pour plus d’informations sur ce processus, voir Qu’est-ce qu’un constructeur ?

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

S’il existe une annonce précédemment ajoutée avec les mêmes valeurs pour la combinaison des champs obligatoires, le service n’ajoute pas l’annonce mais renvoie à la place l’annonce et l’ID précédemment ajoutés. Toutefois, si les mêmes publicités sont traitées dans la même file d’attente de build, la deuxième publicité échoue avec CampaignServiceDuplicateAd. Par exemple, étant donné que les annonces de l’exemple suivant sont identiques, l’une d’elles échoue.

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

Obtenir des annonces

Vous disposez de plusieurs options pour obtenir des annonces en fonction de votre position dans la hiérarchie.

Obtenir des annonces à partir d’un groupe d’annonces

Si vous avez un objet AdGroup , appelez la méthode de l’objet pour obtenir la liste des ads annonces qui appartiennent au groupe d’annonces. Cet exemple récupère et imprime toutes les annonces du groupe, mais vous pouvez utiliser les méthodes du sélecteur d’annonces pour filtrer la liste des annonces.

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

Obtenir les annonces d’une campagne

Si vous avez un objet Campagne , appelez la méthode de l’objet pour obtenir la liste des ads annonces qui appartiennent aux groupes d’annonces de la campagne. Cet exemple utilise la méthode du sélecteur d’annonces withCondition pour filtrer la liste des annonces sur celles des groupes d’annonces qui contiennent le nom 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();
            }
        }
    } 
}

Obtenir toutes les annonces du compte

Pour obtenir toutes les publicités d’un compte, appelez la ads méthode sur l’objet AdsApp . Vous pouvez utiliser les méthodes du sélecteur d’annonces pour filtrer la liste des annonces par campagnes, groupes d’annonces ou en fonction des performances des annonces. Cet exemple récupère toutes les annonces du compte.

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

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

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

Suspendre une annonce

Pour suspendre une annonce, appelez la méthode de l’annonce pause . Étant donné que la pause méthode se trouve sur l’objet Ad de base, vous n’avez pas besoin d’obtenir l’objet dérivé en premier.

Si vous souhaitez activer ou supprimer une annonce, appelez simplement la méthode ou la enable méthode de remove l’annonce. Pour case activée si l’annonce est activée ou suspendue, appelez la isEnabled méthode ouisPaused.

Pour obtenir des annonces avec un status spécifique, utilisez la méthode du sélecteur d’annonceswithCondition. Par exemple : 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();
    }
}

Recevoir des publicités désapprouvées

Pour obtenir un exemple qui reçoit des publicités désapprouver, consultez Découvrir les publicités désapprouver.