1. Wprowadzenie
Co utworzysz
W tym ćwiczeniu 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ć zasobów jako komponentów z obrazem w kampaniach.
Czego się nauczysz
- Jak generować obrazy z GCP i Vertex AI
- Jak przesyłać obrazy do Google Ads
- Jak korzystać z niej w Google Ads
Czego potrzebujesz
- Konto Google Ads
- Konto GCP
2. Uzyskiwanie certyfikatów Google Ads
Ta część jest potrzebna do pobierania komponentów z obrazem z Google Ads. Aby uzyskać dostęp do Google Ads z 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 Google Ads, musisz mieć dostęp do danych logowania do Cloud.
Jeśli nie masz skonfigurowanego ekranu zgody, najpierw go skonfiguruj.
- Typ użytkownika: zewnętrzny
- Stan publikacji: w wersji produkcyjnej

Dodaj ten identyfikator URI do sekcji „Autoryzowane identyfikatory URI przekierowania”
Wpisz poniższy identyfikator URI, jak pokazano na zrzucie ekranu poniżej.
https://developers.google.com/oauthplayground

Skopiuj identyfikator klienta i tajny klucz klienta
Możesz uzyskać identyfikator klienta i tajny klucz klienta.

3. Generowanie tokena odświeżania
Dostęp do OAuth Playground
Możesz łatwo wygenerować tymczasowy token odświeżania w OAuth Playground.
Otwórz ustawienia i zaznacz „Używaj własnych danych logowania OAuth”. Po uzyskaniu identyfikatora klienta OAuth i tajnego klucza klienta w poprzednim rozdziale możesz wpisać je w odpowiednich polach tekstowych. 

Dodaj zakres
W obszarze poniżej możesz dodać zakres https://www.googleapis.com/auth/adwords.

Kliknij Autoryzuj interfejsy API. Wyświetli się następny ekran.
Generowanie tokena odświeżania
Kliknij „Wymień kod autoryzacji na tokeny”, a zobaczysz token odświeżania.

4. Przygotowywanie Colab do wykonania kodu
Colab to przydatny notatnik do kodu, który jest dostarczany z Pythonem. Opcja domyślna zapewnia dość dużą moc obliczeniową. Możesz też użyć dowolnej platformy, aby wywołać interfejs API REST Google Cloud Vertex AI.
Aby z niej skorzystać, wejdź na https://colab.research.google.com/.
Wybierz [Plik → Nowa notatka] i zacznij pisać nowe kody.

Jeśli klikniesz Nowy notatnik, zobaczysz nowy arkusz gotowy do użycia.
5. Generowanie obrazów za pomocą Google Cloud Vertex AI
Importowanie bibliotek
!pip install requests google-ads
Najpierw zainstaluj biblioteki do obsługi Google Ads i żądań interfejsu API. Po zainstalowaniu bibliotek musisz ponownie uruchomić środowisko wykonawcze.
Możesz też wczytać niezbędne biblioteki.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
Uzyskiwanie uwierzytelniania
Zobaczysz prośbę o autoryzację konta Google.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
Po autoryzacji możesz wywoływać interfejsy API Google Cloud.
6. Generowanie obrazu z Vertex AI
Przygotuj prompt i żądanie POST
Najpierw musisz mieć identyfikator projektu w chmurze Google. Możesz go pobrać z Google Cloud. Potrzebujesz prompta tekstowego. Możesz też określić, ile obrazów chcesz wygenerować. 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 napisać dowolną treść. Chcemy wygenerować obrazy, na których kot i komputer będą razem na jednym zdjęciu.
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
}
}
Poproś o wygenerowanie obrazu
Gdy plik JSON będzie gotowy, możesz poprosić o wygenerowanie obrazu. Poniżej znajdziesz 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, otrzymasz wynik. To bardzo proste.

7. Łączenie z Google Ads
Połącz z kontem Google Ads
Musisz mieć token programisty z Google Ads. Możesz poprosić o podstawowy lub standardowy token deweloperski, ale do celów testowych dostępny jest też token testowy. Otwórz konto MCK. Na karcie Narzędzia i ustawienia zobaczysz Centrum interfejsów API. W sekcji API znajdziesz swój token.
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ń do konta Google Ads
Teraz możesz przeprowadzać testy za pomocą usługi googleads_service. Sprawdźmy, jakie zasoby 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 coś takiego:
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Przesyłanie komponentu z obrazem do Google Ads
Przesyłanie
W ostatnim kroku prześlemy wygenerowane komponenty do 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])
Po kilku sekundach przesłany komponent będzie widoczny w interfejsie Google Ads. Oto przykładowy zrzut ekranu.

9. Gratulacje
Gratulacje! Udało Ci się wygenerować piękne zasoby graficzne na podstawie istniejącego obrazu.
Czego się nauczysz
- Jak generować komponenty z obrazem za pomocą generatywnej AI (Vertex AI)
- Jak przesyłać obrazy do Google Ads i używać ich jako komponentów z obrazem