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 et de Vertex AI
- Importer des images dans Google Ads
- Comment l'utiliser dans Google Ads
Prérequis
- Compte Google Ads
- Compte GCP
2. Obtenir des identifiants Google Ads
Cette étape est nécessaire pour obtenir des composants Image à partir de Google Ads. Pour accéder à Google Ads depuis Colab, vous avez besoin d'identifiants appropriés.
Créer des identifiants -> Créer un "ID client OAuth" -> Application Web
Pour obtenir les bons identifiants et associer Google Ads, vous devez accéder aux identifiants Cloud.
Si vous n'avez pas configuré l'écran de consentement, configurez-le d'abord.
- Type d'utilisateur: externe
- État de la publication: En production
Ajoutez l'URI suivant à "URI de redirection autorisés"
Saisissez l'URI ci-dessous comme dans la capture d'écran ci-dessous.
https://developers.google.com/oauthplayground
Copier l'ID client et le code secret du client
Vous pouvez obtenir l'ID et le code secret du 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 "User your own OAuth credentials" (Utilisez vos propres identifiants OAuth). Après avoir obtenu l'ID et le code secret du client OAuth dans le chapitre précédent, vous pouvez les placer dans les zones de texte correspondantes.
Ajouter le niveau d'accès
Vous pouvez ajouter le champ d'application https://www.googleapis.com/auth/adwords dans la section ci-dessous.
Cliquez sur "Authorize APIs" (Autoriser les API). L'écran suivant s'affiche.
Générer un jeton d'actualisation
Cliquez sur "Exchange authorization code for tokens" (Échanger le code d'autorisation contre des jetons).
4. Préparer Colab pour exécuter le code
Colab est le 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.
Veuillez accéder à https://colab.research.google.com/ pour l'utiliser.
Accédez à [File → New note] (Fichier → Nouvelle note) et commencez à écrire de nouveaux codes.
Si vous cliquez sur "Nouveau notebook", la nouvelle feuille de calcul sera prête.
5. Générer une image avec Google Cloud Vertex AI
Importer des bibliothèques
!pip install requests google-ads
Commencez par installer des bibliothèques pour Google Ads et des requêtes API. Vous devez redémarrer l'environnement d'exécution après avoir installé les bibliothèques.
Vous pouvez également charger les 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]
Après vous être autorisé, vous êtes prêt à 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 connaître l'ID de votre projet Google Cloud. Vous pouvez l'obtenir dans 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 plus d'options, consultez 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 les images regroupant un chat et un ordinateur.
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'images. Vous trouverez ci-dessous une 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 attendez plusieurs secondes, vous obtiendrez le résultat. C'est très simple !
7. Connectez-vous à Google Ads
Associer votre compte Google Ads
Vous avez besoin d'un jeton de développeur Google Ads. Vous pouvez demander un jeton de développement 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 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 au chapitre précédent.
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
}
Après avoir défini les identifiants, vous pouvez charger l'API GoogleAdsService. Le numéro client est généralement au format xxx-xxxx-xxx, mais vous devez supprimer "-".
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 maintenant effectuer des tests avec googleads_service. Recherchons à présent les types d'assets présents dans votre compte Ads.
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 du compte Google Ads s'affiche au format JSON. Si vous voyez quelque chose comme
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Importer un composant Image dans Google Ads
Importer
La dernière étape consiste à 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])
Après quelques secondes, vous pourrez vérifier l'asset importé via l'interface Google Ads. Voici un exemple de capture d'écran.
9. Félicitations
Félicitations ! Vous venez de générer de superbes composants 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