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 a 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 utilizzarle in Google Ads

Che cosa ti serve

  • Account Google Ads
  • Account Google Cloud

2. Ottieni le credenziali di Google Ads

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

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

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

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

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

6ecf963c5957379d.png

Aggiungi il seguente URI a "URI di reindirizzamento autorizzati"

Inserisci l'URI riportato di seguito come nello screenshot.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Copia l'ID client e il client secret

Puoi ottenere l'ID client e il client secret.

c8578bf54ade7cee.png

3. Genera il token di aggiornamento

Accedi a OAuth Playground

Puoi emettere 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

Aggiungi l'ambito

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

eff5408ba160aad1.png

Fai clic su Autorizza API e vedrai la schermata successiva.

Genera il token di aggiornamento

Fai clic su "Scambia codice di autorizzazione per i token" e vedrai il token di aggiornamento.

e8c6860d61ad73fd.png

4. Prepara Colab per l'esecuzione del codice

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

Visita il sito https://colab.research.google.com/ per utilizzarlo.

Vai a [File → Nuovo notebook] e inizia a scrivere nuovi codici.

6b95020b3d3369ae.png

Se fai clic su Nuovo notebook, vedrai il nuovo foglio pronto per l'uso.

5. Genera immagini tramite Google Cloud Vertex AI

Importa le librerie

!pip install requests google-ads

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

Puoi anche caricare le librerie essenziali.

import requests
import json
import base64

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

Ottieni l'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 eseguito l'autorizzazione, puoi chiamare le API Cloud di Google.

6. Genera immagini da Vertex AI

Prepara il prompt e la richiesta POST

Innanzitutto, devi disporre dell'ID progetto cloud Google. Puoi ottenerlo da Google Cloud. Ti serve 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.

Puoi scrivere qualsiasi cosa all'interno del prompt di testo. In questo caso, vogliamo generare le immagini che mostrano un gatto e un computer insieme 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 il file JSON è pronto, puoi richiedere la generazione di immagini. Di seguito è riportata la richiesta HTTP tipica.

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 aspetti qualche secondo, riceverai il risultato. È molto semplice.

dec38d2d3f7faab8.png

7. Connettiti a Google Ads

Connettiti al tuo account Google Ads

Ti serve un token sviluppatore di Google Ads. Puoi richiedere un token sviluppatore di base o standard, ma a scopo di test è disponibile anche un token di test. Vai al tuo account amministratore. Nella scheda Strumenti e impostazioni, vedrai il Centro API. Nella sezione API troverai il tuo token.

L'ID client, il client secret e i token di aggiornamento devono 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. L'ID cliente è in genere 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"

Esegui query sull'account Google Ads

Ora puoi eseguire test con googleads_service. Eseguiamo una query per scoprire quali tipi di asset sono presenti 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)

Vedrai l'elenco degli asset nell'account Google Ads in formato JSON. Se vedi qualcosa di simile a

ad_group_ad {

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

}

8. Carica l'asset immagine su Google Ads

Carica

Nell'ultimo passaggio, caricheremo gli asset generati su 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 qualche secondo, potrai controllare l'asset caricato tramite il frontend di Google Ads. Ecco uno screenshot di esempio.

7f2fb6063e5ae675.png

9. Complimenti

Complimenti, hai generato correttamente asset immagine di alta qualità dall'immagine esistente.

Cosa hai imparato

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