Come generare un'immagine da Vertex AI e caricarla su Google Ads

1. Introduzione

Cosa creerai

In questo codelab, imparerai a generare immagini utilizzando Vertex AI e inviarle a Google Ads in modo che gli asset possano essere utilizzati come asset immagine nelle campagne.

Cosa imparerai a fare

  • Come generare immagini da Google Cloud, Vertex AI
  • Come caricare immagini su Google Ads
  • Come utilizzarlo in Google Ads

Che cosa ti serve

  • Account Google Ads
  • Account Google Cloud

2. Ottieni le credenziali Google Ads

Questa parte è necessaria per ottenere asset immagine da Google Ads. Per accedere a Google Ads da Colab, devi disporre delle credenziali corrette.

Crea le credenziali -> Crea un "ID client OAuth" -> Applicazione web

Per ottenere le credenziali appropriate per connettere Google Ads, devi accedere alle credenziali Cloud.

Se non hai configurato la schermata per il consenso, configurala prima.

  1. Tipo di utente: esterno
  2. Stato pubblicazione: in produzione

6ecf963c5957379d.png

Aggiungi il seguente URI a "URI di reindirizzamento autorizzati"

Inserisci l'URI sotto come mostrato nello screenshot sotto.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Copia ID client e client secret

Puoi ottenere l'ID client e il client secret.

c8578bf54ade7cee.png

3. Genera token di aggiornamento

Accesso a OAuth Playground

Puoi inviare facilmente un token di aggiornamento temporaneo in OAuth Playground.

Vai alle impostazioni e seleziona "Utilizza le tue credenziali OAuth". Dopo aver acquisito l'ID client OAuth e il client secret nel capitolo precedente, puoi inserirli nelle caselle di testo corrispondenti. ace79f71603a922.png

ad82eca7a99c446c.png

Aggiungere l'ambito

Puoi aggiungere l'ambito https://www.googleapis.com/auth/adwords nell'area di seguito.

eff5408ba160aad1.png

Fai clic su Autorizza API. Verrà visualizzata la schermata successiva.

Genera token di aggiornamento

Fai clic su "Exchange Authorization code for tokens" (Scambia codice di autorizzazione per i token) per visualizzare il token di aggiornamento.

e8c6860d61ad73fd.png

4. Prepara Colab per l'esecuzione del codice

Colab è il pratico blocco note del codice fornito con Python. L'opzione predefinita offre una potenza di calcolo piuttosto generosa. Puoi anche utilizzare qualsiasi piattaforma per chiamare l'API REST di Vertex AI di Google Cloud.

Vai all'indirizzo https://colab.research.google.com/ per utilizzarla.

Vai a [File → Nuova nota] e inizia a scrivere nuovi codici.

6b95020b3d3369ae.png

Se fai clic su Nuovo blocco note, il nuovo foglio sarà pronto.

5. Genera immagine tramite Vertex AI di Google Cloud

Importa librerie

!pip install requests google-ads

Innanzitutto, installa le librerie per le richieste API e di Google Ads. Dopo aver installato le librerie, devi riavviare il runtime.

Puoi anche caricare librerie essenziali.

import requests
import json
import base64

from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image

Ottenere autenticazione

Ti verrà chiesto di autorizzare il tuo Account Google.

auth.authenticate_user()

access_token = !gcloud auth print-access-token
access_token = access_token[0]

Dopo aver ottenuto l'autorizzazione, puoi chiamare le API Google Cloud.

6. Genera immagine da Vertex AI

Preparare il prompt e la richiesta POST

Innanzitutto, dovresti avere l'ID progetto Google Cloud. Puoi scaricarla da Google Cloud. Hai bisogno di un prompt di testo e puoi anche impostare il numero di immagini di cui hai bisogno. Per ulteriori opzioni, consulta la documentazione ufficiale.

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.

All'interno del prompt di testo puoi scrivere qualsiasi cosa. Qui vogliamo generare le immagini che contengono gatto e computer in un'unica immagine.

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
    }
}

Richiedi la generazione di immagini

Quando è tutto pronto per il file JSON, puoi richiedere la generazione dell'immagine. Di seguito è riportata la tipica richiesta http.

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)

Se attendi diversi secondi, otterrai il risultato. Molto semplice.

dec38d2d3f7faab8.png

7. Entra in contatto con Google Ads

Collegati all'account Google Ads

Devi disporre di un token sviluppatore di Google Ads. Puoi richiedere il token dev di base o standard, ma a scopo di test è disponibile anche un token di test. Accedi all'account Centro clienti. Nella scheda Strumenti e impostazioni è presente il Centro API. Il token si trova nella sezione API.

L'ID client, il client secret e i token di aggiornamento dovrebbero essere pronti nel capitolo precedente.

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
}

Dopo aver impostato le credenziali, puoi caricare l'API GoogleAdsService. In genere l'ID cliente è nel formato xxx-xxxx-xxx, ma devi rimuovere "-".

client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"

Esecuzione di query sull'account Google Ads

Ora puoi eseguire il test con googleads_service. Query sul tipo di asset presente nell'account Google 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)

Verrà visualizzato l'elenco degli asset nell'account Google Ads in formato JSON. Se vedi qualcosa del tipo

ad_group_ad {

`images { asset: "customers/1234567890/assets/09876543210" }` 

}

8. Carica asset immagine in Google Ads

Carica

Nell'ultimo passaggio, caricheremo gli asset generati in 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])

Dopo alcuni secondi, potrai controllare l'asset caricato tramite Google Ads Frontend. Ecco lo screenshot di esempio.

7f2fb6063e5ae675.png

9. Complimenti

Congratulazioni, hai generato correttamente asset immagine dall'immagine esistente.

Hai appreso

  • Come generare asset immagine tramite l'IA generativa (Vertex AI)
  • Come caricare immagini su Google Ads e utilizzarle come asset immagine