Vertex AI'dan resim oluşturma ve Google Ads'e yükleme

1. Giriş

Oluşturacaklarınız

Bu codelab'de, Vertex AI'ı kullanarak nasıl görüntü oluşturacağınızı ve öğelerin kampanyalarda resim öğeleri olarak kullanılabilmesi için bu görüntüleri Google Ads'e göndermeyi öğreneceksiniz.

Neler öğreneceksiniz?

  • GCP'den görüntü oluşturma, Vertex AI
  • Google Ads'e resim yükleme
  • Google Ads'de nasıl kullanılır?

Gerekenler

  • Google Ads hesabı
  • GCP Hesabı

2. Google Ads kimlik bilgisi alın

Bu bölüm, Google Ads'den resim öğeleri almak için gereklidir. Colab'den Google Ads'e erişmek için doğru kimlik bilgilerine sahip olmanız gerekir.

Kimlik bilgileri oluşturun -> "OAuth istemci kimliği" oluşturun -> Web Uygulaması

Google Ads'i bağlamak üzere doğru kimlik bilgilerini almak için Cloud kimlik bilgilerine erişmeniz gerekir.

İzin ekranını yapılandırmadıysanız önce izin ekranını ayarlayın.

  1. Kullanıcı türü: Harici
  2. Yayınlama durumu: Üretimde

6ecf963c5957379d.png

Aşağıdaki URI'yi "Yetkili yönlendirme URI'leri"ne ekleyin

Aşağıdaki ekran görüntüsündeki gibi URI'nin altına ekleyin.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

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

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

c8578bf54ade7cee.png

3. Yenileme Jetonu Oluştur

OAuth Playground'a erişim

OAuth Playground'da kolayca geçici bir yenileme jetonu düzenleyebilirsiniz.

Ayarlara gidin ve "Kendi OAuth kimlik bilgilerinizi kullanın" kutusunu işaretleyin. Önceki bölümden OAuth istemci kimliğini ve istemci sırrını edindikten sonra bunları ilgili metin kutularına ekleyebilirsiniz. ace79f71603a922.png

ad82eca7a99c446c.png

Kapsamı ekleme

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

eff5408ba160aad1.png

API'leri Yetkilendir'i tıklayın. Sonraki ekranı görürsünüz.

Yenileme Jetonu Oluştur

"Jetonlar için yetkilendirme kodu değiş tokuşu yap"ı tıkladığınızda yenileme jetonunu görürsünüz.

e8c6860d61ad73fd.png

4. Colab'i kodu yürütmek için hazırlama

Colab, Python ile birlikte gelen pratik bir kod not defteridir. Varsayılan seçenek oldukça bol miktarda bilgi işlem gücü sağlar. Google Cloud Vertex AI'ın REST API'sini çağırmak için dilediğiniz platformu da kullanabilirsiniz.

Uygulamayı kullanmak için lütfen https://colab.research.google.com/ adresine gidin.

[Dosya → Yeni not] bölümüne gidin ve yeni kodlar yazmaya başlayın.

6b95020b3d3369ae.png

Yeni Not Defteri'ni tıklarsanız yeni sayfa sizin için hazır olur.

5. Google Cloud Vertex AI aracılığıyla resim oluşturun

Kitaplıkları içe aktar

!pip install requests google-ads

Birincisi, Google Ads için kitaplıkları ve API isteklerini 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 Alma

Google hesabınızı yetkilendirmeniz istenir.

auth.authenticate_user()

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

Kendinizi yetkilendirdikten sonra Google Cloud API'lerini çağırmaya hazırsınız demektir.

6. Vertex AI'dan resim oluştur

İsteminizi ve POST isteğinizi hazırlama

Öncelikle, Google Cloud proje kimliğinizi bilmeniz gerekir. Google Cloud'dan edinebilirsiniz. Bir metin istemine ihtiyacınız vardır. Ayrıca ihtiyaç duyduğunuz resim sayısını da ayarlayabilirsiniz. Daha fazla seçenek için lütfen resmi belgeleri inceleyin.

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, kedi ile bilgisayarı birlikte tek bir resimde içeren resimleri 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
    }
}

Resim oluşturma isteğinde bulunma

JSON dosyasına hazır olduğunuzda görüntü oluşturma için istek gönderebilirsiniz. Aşağıda tipik bir http isteği 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.

dec38d2d3f7faab8.png

7. Google Ads'e Bağlanın

Google Ads hesabınıza bağlanın

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. API bölümünde jetonunuzu orada 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 "-" karakterini 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ını Sorgulama

Artık googleads_service ile test edebilirsiniz. Ads 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. Örneğin, gördüğünüz gibi

ad_group_ad {

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

}

8. Resim öğesini Google Ads'e yükleyin

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'den kontrol edebilirsiniz. Örnek ekran görüntüsünü aşağıda bulabilirsiniz.

7f2fb6063e5ae675.png

9. Tebrikler

Tebrikler, mevcut resimden başarıyla güzel resim öğeleri oluşturdunuz.

Neler öğrendiniz?

  • Üretken yapay zeka (Vertex AI) ile resim öğeleri oluşturma
  • Resimleri Google Ads'e yükleme ve resim öğesi olarak kullanma