1. Introduction
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez apprendre à générer des images à l'aide de Vertex AI et à les envoyer à Google Ads afin que les composants puissent être utilisés comme composants Image dans les campagnes.
Points abordés
- Générer des images à partir de GCP, Vertex AI
- Importer des images dans Google Ads
- Utiliser les composants dans Google Ads
Prérequis
- Compte Google Ads
- Compte GCP
2. Obtenir des identifiants Google Ads
Cette partie est nécessaire pour obtenir des composants Image à partir de Google Ads. Pour accéder à Google Ads depuis Colab, vous devez disposer des identifiants appropriés.
Créer des identifiants > Créer un ID client OAuth > Application Web
Pour obtenir les identifiants appropriés permettant de connecter Google Ads, vous devez accéder aux identifiants Cloud.
Si vous n'avez pas configuré l'écran d'autorisation, commencez par le faire.
- Type d'utilisateur : externe
- État de publication : En production

Ajoutez l'URI suivant à "URI de redirection autorisés"
Saisissez l'URI ci-dessous, comme indiqué sur la capture d'écran.
https://developers.google.com/oauthplayground

Copier l'ID client et le code secret du client
Vous pouvez obtenir un ID client et un code secret client.

3. Générer un jeton d'actualisation
Accès à OAuth Playground
Vous pouvez facilement émettre un jeton d'actualisation temporaire sur OAuth Playground.
Accédez aux paramètres et cochez la case "Utiliser vos propres identifiants OAuth". Après avoir obtenu l'ID client et le code secret du client OAuth à partir du chapitre précédent, vous pouvez les saisir dans les zones de texte correspondantes. 

Ajouter le champ d'application
Vous pouvez ajouter le champ d'application https://www.googleapis.com/auth/adwords dans la zone ci-dessous.

Cliquez sur "Autoriser les API". L'écran suivant s'affiche.
Générer un jeton d'actualisation
Cliquez sur "Échanger le code d'autorisation contre des jetons". Le jeton d'actualisation s'affiche.

4. Préparer Colab pour l'exécution du code
Colab est un notebook de code pratique fourni avec Python. L'option par défaut fournit une puissance de calcul assez généreuse. Vous pouvez également utiliser n'importe quelle plate-forme pour appeler l'API REST de Google Cloud Vertex AI.
Pour l'utiliser, veuillez accéder à https://colab.research.google.com/.
Accédez à [Fichier → Nouvelle note] et commencez à écrire de nouveaux codes.

Si vous cliquez sur "Nouveau bloc-notes", la nouvelle feuille s'affiche.
5. Générer des images avec Google Cloud Vertex AI
Importer des bibliothèques
!pip install requests google-ads
Commencez par installer les bibliothèques pour Google Ads et les requêtes d'API. Vous devez redémarrer l'environnement d'exécution après avoir installé les bibliothèques.
Vous pouvez également charger des bibliothèques essentielles.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
Obtenir l'authentification
Vous serez invité à autoriser votre compte Google.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
Une fois que vous vous êtes autorisé, vous pouvez appeler les API Google Cloud.
6. Générer une image à partir de Vertex AI
Préparer votre requête et votre requête POST
Tout d'abord, vous devez disposer de l'ID de votre projet Google Cloud. Vous pouvez l'obtenir depuis Google Cloud. Vous avez besoin d'une requête textuelle et vous pouvez également définir le nombre d'images dont vous avez besoin. Pour en savoir plus sur les autres options, veuillez consulter la documentation officielle.
PROJECT_ID = 'abcdefg' # Your GCP project ID
TEXT_PROMPT = 'cat computer' # Your prompt goes here.
IMAGE_COUNT = 4 # You will get 4 images as a result.
Vous pouvez écrire ce que vous voulez dans la requête textuelle. Ici, nous voulons générer des images montrant un chat et un ordinateur sur une même photo.
url = f"https://us-central1-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/us-central1/publishers/google/models/imagegeneration:predict"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json; charset=utf-8"
}
data = {
"instances": [
{
"prompt": TEXT_PROMPT
}
],
"parameters": {
"sampleCount": IMAGE_COUNT
}
}
Demander la génération d'images
Une fois que vous êtes prêt pour le fichier JSON, vous pouvez demander la génération d'image. Vous trouverez ci-dessous la requête HTTP type.
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
response_data = response.json()
for prediction in response_data.get('predictions', []):
image_data = base64.b64decode(prediction['bytesBase64Encoded'])
display(Image(data=image_data))
else:
print("Request failed:", response.status_code, response.text)
Si vous patientez quelques secondes, vous obtiendrez le résultat. C'est très simple !

7. Associer votre compte à Google Ads
Associer votre compte Google Ads
Vous avez besoin d'un jeton de développeur Google Ads. Vous pouvez demander un jeton développeur de base ou standard, mais un jeton de test est également disponible à des fins de test. Accédez à votre compte CM. Dans l'onglet "Outils et paramètres", vous trouverez le centre d'API. Vous trouverez votre jeton dans la section "API".
L'ID client, le code secret du client et les jetons d'actualisation doivent être prêts à l'étape précédente.
credentials = {
"developer_token": "ABCDEFG",
"client_id": "123456789012-abcd1234.apps.googleusercontent.com",
"client_secret": "GOCSPX-abcd1234-abcd1234-abcd1234",
"refresh_token": "1//abcdefghijklmnopqrstuvwxyz",
"use_proto_plus": True
}
Une fois les identifiants définis, vous pouvez charger l'API GoogleAdsService. Le numéro client est généralement au format xxx-xxxx-xxx, mais vous devez supprimer le tiret.
client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"
Interroger un compte Google Ads
Vous pouvez désormais effectuer des tests avec googleads_service. Interrogeons le compte Ads pour connaître les types de composants qu'il contient.
query = (
'''
SELECT
ad_group_ad.ad.id,
ad_group_ad.ad.app_ad.headlines,
ad_group_ad.ad.app_ad.descriptions,
ad_group_ad.ad.app_ad.images
FROM ad_group_ad
''')
response = googleads_service.search(customer_id=customer_id, query=query)
for googleads_row in response:
print(googleads_row)
La liste des composants s'affiche au format JSON dans le compte Google Ads. Si vous voyez un message semblable à
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Importer un composant Image dans Google Ads
Importer
Pour la dernière étape, nous allons importer les composants générés dans Google Ads.
for prediction in response_data.get('predictions', []):
image_base64 = prediction['bytesBase64Encoded']
image_bytes = base64.b64decode(image_base64)
asset_service = client.get_service('AssetService')
asset_operation = client.get_type('AssetOperation')
asset = asset_operation.create
asset.type_ = client.enums.AssetTypeEnum.IMAGE
asset.image_asset.data = image_bytes
asset.name = "cats"
asset_service.mutate_assets(customer_id=customer_id, operations=[asset_operation])
Au bout de quelques secondes, vous pourrez vérifier le composant importé dans l'interface Google Ads. Voici un exemple de capture d'écran.

9. Félicitations
Félicitations, vous avez réussi à générer de magnifiques composants d'image à partir de l'image existante !
Ce que vous avez appris
- Générer des composants Image à l'aide de l'IA générative (Vertex AI)
- Importer des images dans Google Ads et les utiliser comme composants Image