Campagnes Performance Max

Les scripts Google Ads vous permettent de gérer vos campagnes Performance Max. Vous pouvez utiliser des scripts pour récupérer des campagnes Performance Max, gérer des groupes d'assets et générer des rapports. En revanche, vous ne pouvez pas utiliser de scripts pour créer des campagnes Performance Max.

Récupération des campagnes Performance Max

Les campagnes Performance Max sont disponibles via la collection performanceMaxCampaigns d'un objet AdsApp. Vous pouvez les récupérer comme d'habitude:

const campaignName = "My Performance Max campaign";

const campaignIterator = AdsApp.performanceMaxCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

Contrairement à certains autres types de campagnes, les campagnes Performance Max n'ont pas de groupes d'annonces ni d'objets d'annonces que vous pouvez voir. Tout ce qui est lié à ces concepts pour d'autres campagnes est géré automatiquement en fonction des groupes d'assets que vous avez définis.

Assets et groupes d'assets

Les annonces des campagnes Performance Max sont basées sur des composants (vidéos, images, titres et descriptions, par exemple) que vous avez fournis ou que vous avez générés automatiquement. Pour obtenir une présentation complète des types de composants requis, consultez le guide sur les composants Performance Max de l'API Google Ads.

Les assets des campagnes Performance Max sont regroupés dans un groupe d'assets, et chaque campagne Performance Max doit comporter au moins un groupe d'assets. Vous ne pouvez pas créer ces groupes d'assets directement dans des scripts, mais vous pouvez ajouter et supprimer des assets dans un groupe existant.

Ajouter un asset au groupe de composants

Commencez par créer l'asset:

const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
   .withName("new asset name")
   .withData(imageBlob)
   .build();
const imageAsset = assetOperation.getResult();

Ensuite, ajoutez l'asset que vous venez de créer à un groupe d'assets existant:

// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
   .withCondition(`campaign.name = '${campaignName}'`)
   .get();
let campaign;
if (campaignIterator.hasNext()) {
   campaign = campaignIterator.next();
} else {
   throw `No campaign found with name ${campaignName}.`
}

// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();

// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();

// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');

Notez comment spécifier le type d'élément à la dernière étape. Vous trouverez la liste complète des types d'assets dans la documentation de l'API Google Ads.

Pour utiliser un asset existant, commencez par créer un sélecteur d'assets:

const assetSelector = AdsApp.adAssets().assets();

Utilisez ensuite un filtre withCondition pour affiner les éléments sur lesquels vous souhaitez effectuer des opérations. Consultez la documentation de référence sur AssetSelector pour obtenir la liste complète des options de filtrage.

Enfin, récupérez l'itérateur et itérez-le comme pour les autres entités:

const assetIterator = assetSelector.get();

for (const asset of assetIterator) {
   ...
}

Assets texte

Le fonctionnement des composants texte est légèrement différent, car vous n'avez pas besoin de les créer à l'avance. Il vous suffit de spécifier le texte au lieu d'un élément, et le système créera automatiquement l'élément pour vous. Si le texte est une copie exacte d'un composant texte existant, celui-ci est réutilisé.

Par exemple, pour créer un composant Titre:

assetGroup.addAsset('asset text here', 'HEADLINE');

Supprimer l'asset du groupe de composants

Vous pouvez également supprimer un asset d'un groupe d'assets. Toutefois, n'oubliez pas que vous devez disposer d'un nombre minimal de certains types d'assets pour que la campagne soit valide.

Voici comment supprimer le composant ajouté dans l'exemple précédent:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

Vous pouvez également obtenir la liste des éléments d'un groupe d'assets donné à l'aide de la fonction search:

// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
   `SELECT asset.resource_name, asset_group_asset.field_type
    FROM asset_group_asset
    WHERE asset_group.resource_name = '${assetGroupName}'`
);

Cette option permet de sélectionner le nom de ressource de l'élément comme identifiant unique. Vous pouvez également sélectionner d'autres champs, tels que asset.type ou asset.text_asset.text pour affiner davantage les résultats. Utilisez le générateur de requêtes pour ce type de rapport afin de créer votre propre requête.

Une fois que vous disposez de l'élément cible, appelez remove au niveau du groupe d'assets pour le supprimer du groupe:

// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);

Rapports

Les campagnes Performance Max sont indiquées dans la ressource campaign avec les autres types de campagnes. Pour commencer, vous pouvez utiliser quelque chose comme ceci:

SELECT
  campaign.id,
  campaign.url_expansion_opt_out,
  campaign.status,
  campaign.bidding_strategy_type,
  metrics.clicks,
  metrics.cost_micros,
  metrics.impressions,
  metrics.conversions,
  metrics.all_conversions
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
  AND metrics.clicks > 0

Ne sélectionnez aucun champ ad_group, car les campagnes Performance Max ne comportent aucun groupe d'annonces. Aucun groupe ne sera donc renvoyé. Par ailleurs, asset_group ne peut pas être segmenté. Pour en savoir plus sur la création de rapports, consultez notre guide des rapports.

Vous pouvez aussi créer des rapports directement sur les groupes d'assets. Pour savoir comment procéder, consultez le guide de l'API Google Ads sur ce sujet. Vous pouvez utiliser n'importe quelle requête que vous voyez ici et l'exécuter via la méthode AdsApp.search dans les scripts Google Ads pour obtenir les mêmes résultats.