Exemples de script pour la gestion des mots clés

Les sections suivantes présentent des exemples de scripts qui effectuent différentes actions sur des mots clés.

Ajouter des mots clés

Pour ajouter un mot clé, commencez par obtenir le groupe d’annonces auquel ajouter le mot clé. 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.

Ensuite, appelez la méthode newKeywordBuilder du groupe d’annonces pour obtenir un générateur que vous utilisez pour spécifier les propriétés du mot clé. La seule propriété que vous devez spécifier est le texte du mot clé (voir la withText méthode). Le texte doit inclure le type de correspondance (guillemets pour le type de correspondance d’expression, crochets pour le type de correspondance exact, rien pour le type de correspondance large).

Si vous ne spécifiez pas de valeur de CPC, la valeur de CPC du groupe d’annonces est définie par défaut. Par défaut, le status du mot clé est activé.

L’appel de la méthode du build constructeur crée le mot clé de manière asynchrone ; Scripts ajoute le mot clé à 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() {
    // 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}`);
            }
        }
    }
}

Suspendre un mot clé

Lorsque vous ajoutez un mot clé, son status est Activé par défaut. Pour suspendre le mot clé, appelez la méthode du pause mot clé. Pour déterminer le status du mot clé, appelez les mots clés et isPaused les méthodesisEnabled.

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

Obtenir tous les mots clés d’un groupe d’annonces

Pour obtenir tous les mots clés d’un groupe d’annonces, appelez d’abord la méthode de keywords l’objet AdsApp pour obtenir le sélecteur. Utilisez la withCondition méthode pour spécifier le groupe d’annonces et la campagne. Ensuite, appelez la méthode du get sélecteur pour obtenir un itérateur que vous utilisez pour itérer dans la liste des mots clés. Pour déterminer le nombre de mots clés dans l’itérateur, appelez la méthode de l’itérateur totalNumEntities .

Si vous avez accès aux ID de mot clé, utilisez-les à la place. L’utilisation d’ID pour obtenir des entités offre de meilleures performances. Utilisez la withIds méthode au lieu d’utiliser la méthode de withCondition filtrage. Par exemple : withIds(['12345']). Il existe des limites au nombre d’entités que vous pouvez récupérer à l’aide d’ID.

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

Obtenir tous les mots clés dans un compte

Il existe une limite au nombre de mots clés que les scripts peuvent renvoyer pour un compte. La limite n’est pas définie et peut changer. L’exemple suivant montre comment gérer les cas où un compte contient trop de mots clés. L’exemple tente d’abord d’extraire tous les mots clés au niveau du compte. Si cela échoue en raison de l’erreur « Il y a trop d’entités », il tente d’effectuer plusieurs appels pour récupérer les mots clés par campagne, car il y a généralement moins d’entités au niveau de la campagne.

Pour plus d’informations sur l’utilisation du mot clé rendement, voir Utiliser le mot clé rendement lors de l’obtention de grands ensembles d’entités.

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

Obtenir les données de performances d’un mot clé

Pour obtenir les métriques de performances d’un mot clé, appelez la méthode getStats du mot clé. Lorsque vous obtenez le mot clé, vous devez spécifier la plage de dates des données métriques souhaitées. Vous pouvez spécifier la plage de dates à l’aide d’un littéral prédéfini, tel que LAST_MONTH ou AUJOURDHUI, ou de dates de début et de fin. Pour spécifier la plage de dates, utilisez l’une forDateRange des méthodes lorsque vous sélectionnez le mot clé (voir KeywordSelector).

Pour obtenir la liste des mesures auxquelles vous pouvez accéder, consultez l’objet Statistiques .

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

Mettez à jour la valeur d’enchère d’un mot clé.

Pour obtenir un exemple montrant comment mettre à jour la valeur d’enchère d’un mot clé, consultez Appel aux services Google.