Objectifs de conversion
Lorsque vous créez une campagne Performance Max, une série d'objectifs de conversion
sont automatiquement créés et correspondent aux CustomerConversionGoals du
compte. Vous pouvez les personnaliser spécifiquement pour chacune de vos campagnes Performance Max en les modifiant.
Pour ce faire, vous devez d'abord récupérer l'ID de campagne de vos campagnes Performance Max et la liste de tous les objectifs de conversion client. Voici un exemple de modification des objectifs d'une campagne. Vous pouvez également configurer votre code pour qu'il parcoure plusieurs campagnes Performance Max.
// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";
const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
campaignId = search.next().campaign.id;
console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
console.log(`No campaign named "${campaignName}" found`);
// Perform further error handling here
}
// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
`SELECT
customer_conversion_goal.category,
customer_conversion_goal.origin
FROM customer_conversion_goal`
);
Vous pouvez ensuite parcourir tous les objectifs de conversion que vous avez récupérés et créer une opération de mise à jour pour la campagne Performance Max actuelle afin de personnaliser le ciblage de chaque objectif. L'exemple de code présenté plus loin dans cette section définit tous les objectifs comme étant enchérissables, mais vous devrez personnaliser cette partie de la logique pour qu'elle corresponde à ce que vous souhaitez obtenir de votre campagne.
Nous vous recommandons de configurer les objectifs de conversion dans une transaction distincte du reste du processus de création de la campagne. CampaignConversionGoalOperation
nécessite que partialFailure de la requête soit défini sur false. Si vous souhaitez exécuter ce code dans la même transaction que celle dans laquelle vous créez la campagne, vous devez désactiver l'échec partiel pour l'ensemble des opérations. Cet exemple de code montre comment effectuer cette opération dans une transaction distincte.
operations = [];
while (searchResults.hasNext()) {
const row = searchResults.next();
const conversionGoal = row.customerConversionGoal;
operations.push({
"campaignConversionGoalOperation": {
"update": {
"resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
// Insert your logic here to determine whether you want this particular
// campaign conversion goal to be biddable or not.
// This code will just default everything to being biddable, but that
// is not necessarily best for your use case.
"biddable": true
},
"updateMask": "biddable"
}
});
}
AdsApp.mutateAll(operations, {partialFailure: false});
Ciblage de la campagne
Pour le ciblage des campagnes dans Performance Max, consultez le guide de l'API pour obtenir la liste complète des types de critères autorisés.
Des critères supplémentaires ne sont pas nécessaires pour créer une campagne Performance Max, mais peuvent être utiles pour limiter le ciblage en fonction de votre cas d'utilisation. L'exemple de code suivant montre comment configurer un ciblage géographique. Vous pouvez consulter la
CampaignCriterion documentation pour connaître le format des autres types de critères.
Vous pouvez créer ces critères en même temps que la campagne dans le cadre du même appel à mutateAll. Cet exemple de code part du principe que c'est ainsi que vous structurez votre code.
operations.push({
"campaignCriterionOperation": {
"create": {
"campaign": campaignOperation.campaignOperation.create.resourceName,
"negative": false,
"location": {
// 1023191 represents New York City
"geoTargetConstant": "geoTargetConstants/1023191"
}
}
}
});
Signaux de groupe de composants
Avant de commencer
, consultez les signaux de groupe de composants dans la documentation de l'API. Ils sont configurés en associant un groupe de composants à un critère existant
AudienceInfo ou SearchThemeInfo. Si vous souhaitez utiliser une audience à la place, spécifiez le champ audience au lieu du champ searchTheme avec le nom de ressource de l'audience.
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});