Bilder aus Vertex AI generieren und in Google Ads hochladen

1. Einführung

Inhalt

In diesem Codelab erfahren Sie, wie Sie mit Vertex AI Bilder generieren und an Google Ads senden, damit sie als Bild-Assets in den Kampagnen verwendet werden können.

Aufgaben in diesem Lab

  • Bilder aus der GCP und Vertex AI generieren
  • Bilder in Google Ads hochladen
  • Verwendung in Google Ads

Voraussetzungen

  • Google Ads-Konto
  • GCP-Konto

2. Anmeldedaten für Google Ads abrufen

Dieser Teil ist erforderlich, um Bild-Assets aus Google Ads abzurufen. Für den Zugriff auf Google Ads über Colab benötigen Sie die richtigen Anmeldedaten.

Anmeldedaten erstellen -> OAuth-Client-ID erstellen -> Webanwendung

Damit Sie die richtigen Anmeldedaten zum Verbinden mit Google Ads erhalten, müssen Sie auf Cloud-Anmeldedaten zugreifen.

Wenn Sie den Zustimmungsbildschirm noch nicht konfiguriert haben, richten Sie ihn zuerst ein.

  1. Nutzertyp: extern
  2. Veröffentlichungsstatus: In Produktion

6ecf963c5957379d.png

Fügen Sie den folgenden URI zu „Autorisierte Weiterleitungs-URIs“ hinzu.

Tragen Sie den URI wie im Screenshot unten ein.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Client-ID und Clientschlüssel kopieren

Sie können die Client-ID und den Clientschlüssel abrufen.

c8578bf54ade7cee.png

3. Aktualisierungstoken generieren

Zugriff auf OAuth Playground

Im OAuth Playground können Sie ganz einfach ein temporäres Aktualisierungstoken ausgeben.

Rufen Sie die Einstellungen auf und aktivieren Sie die Option „Eigene OAuth-Anmeldedaten verwenden“. Nachdem Sie die OAuth-Client-ID und den Clientschlüssel aus dem vorherigen Kapitel erworben haben, können Sie diese in die entsprechenden Textfelder einfügen. ace79f71603a922.png

ad82eca7a99c446c.png

Bereich hinzufügen

Sie können den Bereich https://www.googleapis.com/auth/adwords in den Bereich unten hinzufügen.

eff5408ba160aad1.png

Klicken Sie auf „Authorize APIs“ (APIs autorisieren), um den nächsten Bildschirm aufzurufen.

Aktualisierungstoken generieren

Klicken Sie auf „Autorisierungscode gegen Tokens austauschen“, um das Aktualisierungstoken anzuzeigen.

e8c6860d61ad73fd.png

4. Colab für die Codeausführung vorbereiten

Colab ist das praktische Code-Notebook in Python. Die Standardoption bietet eine relativ großzügige Rechenleistung. Sie können auch eine beliebige Plattform verwenden, um die REST API von Google Cloud Vertex AI aufzurufen.

Rufen Sie https://colab.research.google.com/ auf, um sie zu verwenden.

Gehen Sie zu [Datei → Neue Notiz] und beginnen Sie mit dem Schreiben neuer Codes.

6b95020b3d3369ae.png

Wenn Sie auf Neues Notizbuch klicken, wird das neue Tabellenblatt angezeigt.

5. Bild mit Vertex AI von Google Cloud generieren

Bibliotheken importieren

!pip install requests google-ads

Installieren Sie zuerst Bibliotheken für Google Ads und API-Anfragen. Sie müssen die Laufzeit nach der Installation der Bibliotheken neu starten.

Sie können auch wichtige Bibliotheken laden.

import requests
import json
import base64

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

Authentifizierung erhalten

Sie werden aufgefordert, Ihr Google-Konto zu autorisieren.

auth.authenticate_user()

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

Nach der Autorisierung können Sie Google Cloud APIs aufrufen.

6. Bild aus Vertex AI generieren

Prompt und POST-Anfrage vorbereiten

Zuerst sollten Sie Ihre Google Cloud-Projekt-ID zur Hand haben. Sie können sie von Google Cloud abrufen. Sie benötigen einen Text-Prompt und können festlegen, wie viele Bilder Sie benötigen. Weitere Optionen finden Sie in der offiziellen Dokumentation.

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.

In den Text-Prompt kannst du einen beliebigen Text eingeben. Hier wollen wir die Bilder generieren, auf denen Katze und Computer in einem einzigen Bild zu sehen sind.

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

Bildgenerierung anfordern

Sobald Sie für die JSON-Datei bereit sind, können Sie die Bildgenerierung anfordern. Unten sehen Sie eine typische HTTP-Anfrage.

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)

Wenn Sie einige Sekunden warten, erhalten Sie das Ergebnis. Sehr einfach!

dec38d2d3f7faab8.png

7. Google Ads optimal nutzen

Verknüpfung mit Ihrem Google Ads-Konto herstellen

Sie benötigen ein Entwickler-Token von Google Ads. Sie können ein einfaches oder ein Standard-Entwicklertoken beantragen, aber für Testzwecke ist auch ein Testtoken verfügbar. Rufen Sie Ihr Kundencenterkonto auf. Auf dem Tab „Tools und Einstellungen“ finden Sie das API-Center. Im API-Bereich finden Sie dort Ihr Token.

Client-ID, Clientschlüssel und Aktualisierungstoken sollten aus dem vorherigen Kapitel stammen.

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
}

Nachdem Sie die Anmeldedaten festgelegt haben, können Sie die GoogleAdsService API laden. Die Kundennummer hat normalerweise das Format xxx-xxxx-xxx. Sie sollten „-“ jedoch weglassen.

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

Google Ads-Konto wird abgefragt

Jetzt können Sie es mit „googleads_service“ testen. Sehen wir uns an, welche Art von Assets das Google Ads-Konto enthält.

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)

Die Liste der Assets wird im Google Ads-Konto im JSON-Format angezeigt. Wenn Sie eine Meldung wie

ad_group_ad {

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

}

8. Bild-Asset in Google Ads hochladen

Hochladen

Im letzten Schritt laden wir die generierten Assets in Google Ads hoch.

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])

Nach wenigen Sekunden können Sie das hochgeladene Asset im Google Ads-Frontend überprüfen. Hier ist der Beispiel-Screenshot.

7f2fb6063e5ae675.png

9. Glückwunsch

Sie haben mit dem vorhandenen Bild erfolgreich ansprechende Bild-Assets erstellt.

Sie haben gelernt,

  • Bild-Assets mit generativer KI (Vertex AI) generieren
  • Bilder in Google Ads hochladen und als Bild-Assets verwenden