1. Wprowadzenie
Co utworzysz
Z tego ćwiczenia w Codelabs dowiesz się, jak generować obrazy za pomocą Vertex AI i wysyłać je do Google Ads, aby można było używać tych komponentów jako komponentów z obrazem w kampaniach.
Czego się nauczysz
- Jak generować obrazy przy użyciu GCP, Vertex AI
- Przesyłanie obrazów do Google Ads
- Jak używać go w Google Ads
Czego potrzebujesz
- Konto Google Ads
- Konto GCP
2. Uzyskaj dane logowania do Google Ads
Ta część jest niezbędna do pobrania z Google Ads komponentów z obrazem. Aby uzyskać dostęp do Google Ads z poziomu Colab, musisz mieć odpowiednie dane logowania.
Utwórz dane logowania -> Utwórz „Identyfikator klienta OAuth” -> Aplikacja internetowa
Aby uzyskać odpowiednie dane logowania do połączenia z Google Ads, musisz uzyskać dostęp do danych logowania do Google Cloud.
Jeśli nie masz skonfigurowanego ekranu zgody, skonfiguruj go najpierw.
- Typ użytkownika: zewnętrzny
- Stan publikacji: w wersji produkcyjnej
Dodaj następujący identyfikator URI do pola „Autoryzowane identyfikatory URI przekierowania”
Umieść identyfikator URI poniżej jak na zrzucie ekranu poniżej.
https://developers.google.com/oauthplayground
Skopiuj identyfikator i tajny klucz klienta
Możesz uzyskać identyfikator klienta i tajny klucz klienta.
3. Wygeneruj token odświeżania
Dostęp do OAuth Playground
Tymczasowy token odświeżania możesz z łatwością wystawić w OAuth Playground.
Przejdź do ustawień i zaznacz opcję „Użyj własnych danych logowania OAuth”. Uzyskane identyfikatory klienta OAuth i tajny klucz klienta z poprzedniego rozdziału możesz wpisać w odpowiednich polach tekstowych.
Dodawanie zakresu
Zakres https://www.googleapis.com/auth/adwords możesz dodać w obszarze poniżej.
Kliknij Autoryzuj interfejsy API. Wyświetli się następny ekran.
Wygeneruj token odświeżania
Kliknij „Exchange authorization code for token” (Kod autoryzacji wymiany dla tokenów). Wyświetli się token odświeżania.
4. Przygotowanie Colab do wykonania kodu
Colab to praktyczny notatnik z kodem, który wchodzi w skład Pythona. Opcja domyślna zapewnia całkiem sporą moc obliczeniową. Za pomocą dowolnej platformy możesz też wywołać interfejs API REST interfejsu Vertex AI Google Cloud.
Aby z niego skorzystać, otwórz stronę https://colab.research.google.com/.
Przejdź do [Plik → Nowa notatka] i zacznij pisać nowe kody.
Gdy klikniesz Nowy notatnik, zobaczysz gotowy arkusz.
5. Generowanie obrazu za pomocą Vertex AI Google Cloud
Importuj biblioteki
!pip install requests google-ads
Najpierw zainstaluj biblioteki dla Google Ads i żądania do interfejsu API. Po zainstalowaniu bibliotek musisz ponownie uruchomić środowisko wykonawcze.
Możesz też wczytać najważniejsze biblioteki.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
Uzyskaj uwierzytelnianie
Pojawi się prośba o autoryzację konta Google.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
Po przeprowadzeniu autoryzacji możesz wywoływać interfejsy Google Cloud APIs.
6. Wygeneruj obraz z Vertex AI
Przygotowywanie promptu i żądania POST
Przede wszystkim przygotuj identyfikator projektu Google Cloud. Możesz je pobrać z Google Cloud. Potrzebujesz prompta tekstowego. Możesz też określić liczbę obrazów, które potrzebujesz. Więcej opcji znajdziesz w oficjalnej dokumentacji.
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.
W prompcie tekstowym możesz wpisać, co chcesz. Tutaj chcemy wygenerować obrazy, na których kot i komputer są widoczne razem.
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
}
}
Wysyłanie prośby o wygenerowanie obrazu
Po przygotowaniu pliku JSON możesz poprosić o wygenerowanie obrazu. Poniżej znajduje się typowe żądanie 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)
Jeśli poczekasz kilka sekund, zobaczysz wynik. To bardzo proste.
7. Połącz się z Google Ads
Połącz z kontem Google Ads
Musisz uzyskać token programisty z Google Ads. Możesz poprosić o podstawowy lub standardowy token programisty, ale do celów testowych jest też dostępny token testowy. Wejdź na konto MCK. Na karcie „Narzędzia i ustawienia” pojawi się centrum interfejsu API. Swój token znajdziesz w sekcji API.
Identyfikator klienta, tajny klucz klienta i tokeny odświeżania powinny być gotowe w poprzednim rozdziale.
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
}
Po ustawieniu danych logowania możesz wczytać interfejs GoogleAdsService API. Identyfikator klienta ma zwykle format xxx-xxxx-xxx, ale należy usunąć znak „-”.
client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"
Wysyłanie zapytań dotyczących konta Google Ads
Teraz możesz przeprowadzać testy za pomocą usługi googleads_service. Sprawdźmy, jakie rodzaje komponentów mamy na koncie 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)
Zobaczysz listę komponentów na koncie Google Ads w formacie JSON. Jeśli zobaczysz komunikat podobny do
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Prześlij komponent z obrazem do Google Ads
Przesyłanie
W ostatnim kroku będziemy przesyłać do Google Ads wygenerowane komponenty.
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])
Po kilku sekundach będzie można sprawdzić przesłany zasób w interfejsie Google Ads. Oto przykładowy zrzut ekranu.
9. Gratulacje
Gratulujemy! Udało Ci się wygenerować piękne komponenty z obrazem na podstawie istniejącego obrazu.
Wiesz już
- Jak generować komponenty z obrazem za pomocą generatywnej AI (Vertex AI)
- Przesyłanie obrazów do Google Ads i używanie ich jako komponentów z obrazem