Campagnes Performance Max utilisant AdsApp

Les scripts Google Ads vous permettent de gérer vos campagnes Performance Max de vos campagnes. Vous pouvez utiliser pour récupérer des campagnes Performance Max, gérer les groupes d'assets les rapports ; Toutefois, vous ne pouvez pas utiliser de scripts pour créer des campagnes Performance Max. À des opérations plus avancées, consultez le reste de ce guide, présente une approche plus générique utilisant mutate.

Récupération des campagnes Performance Max

Les campagnes Performance Max sont disponibles performanceMaxCampaigns collection d'un 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 à d'autres types de campagnes, les campagnes Performance Max ne comportent pas les groupes ou objets d'annonces visibles, tout ce qui se rapporte à ces concepts pour les autres campagnes sont gérées automatiquement pour vous, en fonction des groupes d'assets défini.

Assets et groupes d'assets

Les annonces des campagnes Performance Max sont diffusées assets tels que des vidéos, des images, des titres et des descriptions (que vous avez fournis ou automatiquement généré. Pour obtenir un aperçu complet des types d'assets, obligatoire, consultez la section sur l'asset Performance Max de l'API Google Ads guide de démarrage.

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. Toi ne pouvez pas les créer directement dans des scripts, mais vous pouvez ajouter et supprimer des assets d'un groupe d'assets existant.

Ajouter un élément 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, à l'aide de l'asset que vous venez de créer, ajoutez-le à 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 vous devez spécifier le type d'asset à la dernière étape. Vous trouverez liste complète des types d'éléments dans l'API Google Ads documentation

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

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

Utilisez ensuite un filtre withCondition pour affiner votre sélection opèrent. Consultez le AssetSelector documentation de référence pour obtenir la liste complète des options de filtrage.

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

const assetIterator = assetSelector.get();

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

Assets texte

Les composants texte fonctionnent un peu différemment, dans la mesure où vous n'avez pas besoin à l'avance. Il vous suffit de spécifier le texte au lieu d'un asset, et le système créer automatiquement l'asset pour vous. Si le texte est exactement le double d'une l'asset texte existant, il sera réutilisé à la place.

Par exemple, voici comment créer un composant Titre:

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

Supprimer l'asset du groupe d'assets

Vous pouvez aussi supprimer un asset d'un groupe d'assets : Cependant, gardez à l'esprit que vous devez disposer d'un nombre minimal de types éléments 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 composants d'un groupe d'assets donné à l'aide de l'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}'`
);

Le nom de ressource de l'élément est alors sélectionné comme identifiant unique. Vous pourriez sélectionnez d'autres champs, comme asset.type ou asset.text_asset.text, pour affiner davantage les résultats. Utilisez le générateur de requêtes pour ce rapport type pour créer votre propre requête.

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

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