نحوه تولید تصویر از Vertex AI و آپلود در Google Ads

1. معرفی

چیزی که خواهی ساخت

در این کد لبه یاد خواهید گرفت که چگونه با استفاده از Vertex AI تصاویر را تولید کرده و به Google Ads ارسال کنید تا از دارایی ها به عنوان دارایی تصویر در کمپین ها استفاده شود.

چیزی که یاد خواهید گرفت

  • نحوه تولید تصاویر از GCP، Vertex AI
  • نحوه آپلود تصاویر در گوگل ادز
  • نحوه استفاده از آن در تبلیغات گوگل

آنچه شما نیاز دارید

  • حساب Google Ads
  • حساب GCP

2. اعتبار Google Ads را دریافت کنید

این بخش برای دریافت دارایی های تصویر از Google Ads مورد نیاز است. برای دسترسی به Google Ads از Colab، به اعتبارنامه مناسب نیاز دارید.

ایجاد اعتبار -> ایجاد "شناسه مشتری OAuth" -> برنامه وب

برای دریافت اعتبارنامه مناسب برای اتصال Google Ads، باید به اطلاعات کاربری Cloud دسترسی داشته باشید.

اگر صفحه رضایت را پیکربندی نکرده‌اید، ابتدا صفحه رضایت را تنظیم کنید.

  1. نوع کاربر: خارجی
  2. وضعیت انتشار: در حال تولید

6ecf963c5957379d.png

URI زیر را به "URI های تغییر مسیر مجاز" اضافه کنید

زیر URI به عنوان اسکرین شات زیر قرار دهید.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

شناسه مشتری و رمز مشتری را کپی کنید

شما می توانید شناسه مشتری و رمز مشتری را دریافت کنید.

c8578bf54ade7cee.png

3. Refresh Token را ایجاد کنید

دسترسی به زمین بازی OAuth

می‌توانید به‌راحتی در OAuth Playground یک نشانه تازه‌سازی موقت صادر کنید.

به تنظیمات بروید و "User your own OAuth credentials" را بررسی کنید. پس از به دست آوردن شناسه مشتری OAuth و رمز سرویس گیرنده از فصل قبل، می توانید آنها را در کادرهای متنی مربوطه قرار دهید. ace79f71603a922.png

ad82eca7a99c446c.png

دامنه را اضافه کنید

می توانید دامنه https://www.googleapis.com/auth/adwords را به قسمت زیر اضافه کنید.

eff5408ba160aad1.png

روی Authorize APIs کلیک کنید و صفحه بعدی را مشاهده خواهید کرد.

ایجاد Refresh Token

روی «تبادل کد مجوز برای توکن‌ها» کلیک کنید و رمز تازه‌سازی را خواهید دید.

e8c6860d61ad73fd.png

4. Colab را برای اجرای کد آماده کنید

Colab نوت بوک کد مفیدی است که با پایتون ارائه می شود. گزینه پیش فرض مقدار بسیار زیادی از قدرت محاسباتی را فراهم می کند. همچنین می‌توانید از هر پلتفرمی برای فراخوانی REST API Google Cloud Vertex AI استفاده کنید.

لطفاً برای استفاده از آن به https://colab.research.google.com/ بروید.

به [فایل → یادداشت جدید] بروید و شروع به نوشتن کدهای جدید کنید.

6b95020b3d3369ae.png

اگر روی New Notebook کلیک کنید، برگه جدید را برای خود آماده خواهید دید.

5. تصویر را از طریق Google Cloud Vertex AI ایجاد کنید

واردات کتابخانه ها

!pip install requests google-ads

ابتدا کتابخانه‌هایی را برای Google Ads و درخواست‌های API نصب کنید. پس از نصب کتابخانه ها باید زمان اجرا را مجددا راه اندازی کنید.

همچنین می توانید کتابخانه های ضروری را بارگیری کنید.

import requests
import json
import base64

from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image

احراز هویت را دریافت کنید

از شما خواسته می شود تا حساب کاربری گوگل خود را تأیید کنید.

auth.authenticate_user()

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

پس از تأیید اعتبار، آماده تماس با Google Cloud API هستید.

6. تصویر از Vertex AI تولید کنید

درخواست prompt و POST خود را آماده کنید

ابتدا باید شناسه پروژه ابری گوگل خود را داشته باشید. می توانید آن را از Google Cloud دریافت کنید. شما به یک پیام متنی نیاز دارید و همچنین می توانید تعداد تصویر مورد نیاز خود را تعیین کنید. برای گزینه های بیشتر، لطفاً به اسناد رسمی مراجعه کنید.

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.

شما می توانید هر چیزی را در داخل اعلان متن بنویسید. در اینجا، می‌خواهیم تصاویری را که گربه و کامپیوتر را با هم در یک تصویر واحد دارند تولید کنیم.

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
    }
}

درخواست تولید تصویر

هنگامی که برای json آماده شدید، اکنون می توانید برای تولید تصویر درخواست دهید. در زیر درخواست معمولی 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)

اگر چند ثانیه صبر کنید به نتیجه خواهید رسید. بسیار ساده!

dec38d2d3f7faab8.png

7. به Google Ads متصل شوید

به حساب Google Ads خود متصل شوید

به یک توکن توسعه دهنده از Google Ads نیاز دارید. شما می توانید برای کد برنامه نویس پایه یا استاندارد درخواست دهید، اما برای هدف آزمایش، توکن تست نیز موجود است. به حساب MCC خود بروید. در تب ابزار و تنظیمات، مرکز API را مشاهده خواهید کرد. در بخش API، توکن خود را در آنجا پیدا خواهید کرد.

شناسه مشتری، رمز مشتری و توکن‌های تازه‌سازی باید در فصل قبل آماده باشند.

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
}

پس از تنظیم اعتبار، می توانید API GoogleAdsService را بارگیری کنید. شناسه مشتری معمولاً در قالب xxx-xxxx-xxx است، اما باید «-» را حذف کنید.

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

پرس و جو از حساب Google Ads

اکنون می توانید با googleads_service تست کنید. بیایید جویا شویم که چه نوع دارایی در حساب تبلیغات داریم.

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 را با فرمت json خواهید دید. اگر چیزی شبیه به

ad_group_ad {

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

}

8. دارایی تصویر را در تبلیغات گوگل آپلود کنید

بارگذاری

برای آخرین مرحله، ما قصد داریم دارایی های تولید شده را در 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])

پس از چند ثانیه، می‌توانید دارایی آپلود شده را از طریق Google Ads Frontend بررسی کنید. در اینجا نمونه اسکرین شات است.

7f2fb6063e5ae675.png

9. تبریک می گویم

تبریک می گوییم، شما با موفقیت دارایی های تصویری زیبایی را از تصویر موجود ایجاد کرده اید!

تو یاد گرفتی

  • نحوه تولید دارایی های تصویری از طریق هوش مصنوعی (Vertex AI)
  • نحوه آپلود تصاویر در Google Ads و استفاده از آن به عنوان دارایی تصویر