1. Giriş
Ne oluşturacaksınız?
Bu codelab'de, Vertex AI'ı kullanarak nasıl resim oluşturacağınızı ve öğelerin kampanyalarda resim öğesi olarak kullanılabilmesi için bu resimleri Google Ads'e nasıl göndereceğinizi öğreneceksiniz.
Neler öğreneceksiniz?
- GCP ve Vertex AI'dan resim oluşturma
- Google Ads'e resim yükleme
- Google Ads'de kullanma
Gerekenler
- Google Ads hesabı
- GCP Hesabı
2. Google Ads kimlik bilgilerini edinme
Bu bölüm, Google Ads'den resim öğeleri almak için gereklidir. Colab'den Google Ads'e erişmek için uygun kimlik bilgilerine sahip olmanız gerekir.
Kimlik bilgileri oluştur -> "OAuth istemci kimliği" oluştur -> Web uygulaması
Google Ads'i bağlamak için uygun kimlik bilgilerini almak üzere Cloud kimlik bilgilerine erişmeniz gerekir.
Kullanıcı rızası ekranını yapılandırmadıysanız önce kullanıcı rızası ekranını ayarlayın.
- Kullanıcı türü: Harici
- Yayınlanma durumu: Üretimde

"Yetkilendirilmiş yönlendirme URI'leri" bölümüne aşağıdaki URI'yi ekleyin
Aşağıdaki URI'yi aşağıdaki ekran görüntüsünde gösterildiği gibi girin.
https://developers.google.com/oauthplayground

İstemci kimliğini ve istemci gizli anahtarını kopyalama
İstemci kimliğini ve istemci gizli anahtarını alabilirsiniz.

3. Yenileme jetonu oluşturma
OAuth Playground'a erişim
OAuth Playground'da kolayca geçici bir yenileme jetonu oluşturabilirsiniz.
Ayarlara gidin ve "Kendi OAuth kimlik bilgilerinizi kullanın" seçeneğini işaretleyin. Önceki bölümde OAuth istemci kimliğini ve istemci gizli anahtarını edindikten sonra bunları ilgili metin kutularına girebilirsiniz. 

Kapsamı ekleme
https://www.googleapis.com/auth/adwords kapsamını aşağıdaki alana ekleyebilirsiniz.

API'leri yetkilendir'i tıkladığınızda bir sonraki ekran gösterilir.
Yenileme Jetonu Oluşturma
"Jetonlar için yetkilendirme kodu değiş tokuşu yap"ı tıkladığınızda yenileme jetonunu görürsünüz.

4. Colab'i kodu yürütmeye hazırlama
Colab, Python ile birlikte gelen kullanışlı kod not defteridir. Varsayılan seçenek, oldukça yüksek bir işlem gücü sağlar. Google Cloud Vertex AI'ın REST API'sini çağırmak için herhangi bir platformu da kullanabilirsiniz.
Kullanmak için lütfen https://colab.research.google.com/ adresine gidin.
[Dosya → Yeni not] seçeneğine gidip yeni kodlar yazmaya başlayın.

Yeni not defteri'ni tıklarsanız yeni sayfa kullanıma hazır hâlde gösterilir.
5. Google Cloud Vertex AI ile resim oluşturma
Kitaplıkları içe aktarma
!pip install requests google-ads
Öncelikle Google Ads ve API istekleri için kitaplıkları yükleyin. Kitaplıkları yükledikten sonra çalışma zamanını yeniden başlatmanız gerekir.
Gerekli kitaplıkları da yükleyebilirsiniz.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
Kimlik Doğrulama
Google Hesabınıza yetki vermeniz istenir.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
Kendinize yetki verdikten sonra Google Cloud API'lerini çağırmaya hazırsınız.
6. Vertex AI'dan resim oluşturma
İsteminizi ve POST isteğinizi hazırlama
Öncelikle Google Cloud proje kimliğiniz olmalıdır. Google Cloud'dan edinebilirsiniz. Metin istemi girmeniz gerekir. Ayrıca kaç resim istediğinizi de belirleyebilirsiniz. Daha fazla seçenek için lütfen resmi belgelere göz atın.
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.
Metin istemine istediğiniz şeyi yazabilirsiniz. Burada, tek bir resimde kedi ve bilgisayarın birlikte yer aldığı görseller oluşturmak istiyoruz.
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
}
}
Görüntü üretme isteğinde bulunma
JSON dosyası hazır olduğunda artık görüntü üretme isteğinde bulunabilirsiniz. Tipik http isteği aşağıda verilmiştir.
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)
Birkaç saniye beklerseniz sonucu alırsınız. Çok basit!

7. Google Ads'e bağlanma
Google Ads hesabınıza bağlanma
Google Ads'den bir geliştirici jetonu almanız gerekir. Temel veya standart geliştirici jetonu için başvurabilirsiniz ancak test amacıyla test jetonu da kullanılabilir. MM hesabınıza gidin. Araçlar ve ayarlar sekmesinde API merkezini görürsünüz. Jetonunuzu API bölümünde bulabilirsiniz.
İstemci kimliği, istemci gizli anahtarı ve yenileme jetonları önceki bölümde hazır olmalıdır.
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
}
Kimlik bilgilerini ayarladıktan sonra GoogleAdsService API'yi yükleyebilirsiniz. Müşteri kimliği genellikle xxx-xxxx-xxx biçimindedir ancak "-" işaretini kaldırmanız gerekir.
client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"
Google Ads hesabına sorgu gönderme
Artık googleads_service ile test yapabilirsiniz. Reklam hesabında ne tür öğelerimiz olduğunu sorgulayalım.
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)
Google Ads hesabındaki öğelerin listesini JSON biçiminde görürsünüz. Şuna benzer bir mesaj görürseniz:
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Google Ads'e resim öğesi yükleme
Video
Son adımda, oluşturulan öğeleri Google Ads'e yükleyeceğiz.
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])
Birkaç saniye sonra, yüklenen öğeyi Google Ads Frontend üzerinden kontrol edebilirsiniz. Örnek ekran görüntüsünü burada bulabilirsiniz.

9. Tebrikler
Tebrikler, mevcut resimden güzel resim öğeleri oluşturmayı başardınız.
Öğrendikleriniz
- Üretken yapay zeka (Vertex AI) ile resim öğeleri oluşturma
- Google Ads'e resim yükleme ve bunları resim öğesi olarak kullanma