Bilder aus Vertex AI generieren und in Google Ads hochladen

1. Einführung

Umfang

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

Lerninhalte

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

Voraussetzungen

  • Google Ads-Konto
  • GCP-Konto

2. Google Ads-Anmeldedaten erhalten

Dieser Teil ist erforderlich, um Bild-Assets aus Google Ads abzurufen. Um von Colab aus auf Google Ads zuzugreifen, benötigen Sie die entsprechenden Anmeldedaten.

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

Um die richtigen Anmeldedaten für die Verbindung von Google Ads zu 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

Geben 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

Sie können ganz einfach ein temporäres Aktualisierungstoken im OAuth Playground ausstellen.

Rufen Sie die Einstellungen auf und setzen Sie ein Häkchen bei „Eigene OAuth-Anmeldedaten verwenden“. Nachdem Sie die OAuth-Client-ID und den Clientschlüssel aus dem vorherigen Kapitel abgerufen haben, können Sie sie 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 folgenden Bereich einfügen.

eff5408ba160aad1.png

Klicken Sie auf „APIs autorisieren“. Der nächste Bildschirm wird angezeigt.

Aktualisierungstoken generieren

Klicken Sie auf „Autorisierungscode gegen Tokens austauschen“. Das Aktualisierungstoken wird angezeigt.

e8c6860d61ad73fd.png

4. Colab für die Ausführung des Codes vorbereiten

Colab ist das praktische Code-Notebook, das mit Python geliefert wird. Die Standardoption bietet eine großzügige Menge an 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 das Produkt zu verwenden.

Klicken Sie auf [Datei → Neue Anmerkung] und beginnen Sie mit dem Schreiben neuer Codes.

6b95020b3d3369ae.png

Wenn Sie auf „Neues Notebook“ klicken, wird das neue Tabellenblatt angezeigt.

5. Bilder mit Google Cloud Vertex AI generieren

Bibliotheken importieren

!pip install requests google-ads

Installieren Sie zuerst Bibliotheken für Google Ads und API-Anfragen. Nach der Installation der Bibliotheken müssen Sie die Laufzeit 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]

Nachdem Sie sich autorisiert haben, können Sie Google Cloud APIs aufrufen.

6. Bilder mit Vertex AI generieren

Prompt und POST-Anfrage vorbereiten

Zuerst benötigen Sie Ihre Google Cloud-Projekt-ID. Sie können sie über Google Cloud beziehen. Sie benötigen einen Text-Prompt und können auch 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.

Sie können beliebigen Text in den Text-Prompt eingeben. Hier möchten wir Bilder generieren, auf denen eine Katze und ein Computer auf 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

Wenn Sie bereit für das JSON sind, können Sie jetzt die Bildgenerierung anfordern. Unten sehen Sie die 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. Ganz einfach.

dec38d2d3f7faab8.png

7. Mit Google Ads verknüpfen

Mit Google Ads-Konto verbinden

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

Client-ID, Clientschlüssel und Aktualisierungstokens sollten im vorherigen Kapitel bereitgestellt werden.

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. Entfernen Sie jedoch das „-“.

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

Google Ads-Konto abfragen

Jetzt können Sie mit googleads_service testen. Wir fragen ab, welche Arten von Assets im Google Ads-Konto vorhanden sind.

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)

Sie sehen die Liste der Assets im Google Ads-Konto im JSON-Format. Wenn Sie etwas 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 einigen Sekunden können Sie das hochgeladene Asset über das Google Ads-Frontend aufrufen. Hier ist der Beispiel-Screenshot.

7f2fb6063e5ae675.png

9. Glückwunsch

Glückwunsch! Sie haben erfolgreich ansprechende Bild-Assets aus dem vorhandenen Bild generiert.

Sie haben gelernt

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