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

۱. مقدمه

آنچه خواهید ساخت

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

آنچه یاد خواهید گرفت

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

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

  • حساب کاربری گوگل ادز
  • حساب GCP

۲. اعتبارنامه‌های گوگل ادز را دریافت کنید

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

ایجاد اعتبارنامه -> ایجاد «شناسه کلاینت OAuth» -> برنامه وب

برای دریافت اعتبارنامه‌های مناسب برای اتصال به گوگل ادز، باید به اعتبارنامه‌های ابری دسترسی داشته باشید.

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

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

6ecf963c5957379d.png

آدرس اینترنتی زیر را به «URI های ریدایرکت مجاز» اضافه کنید.

زیر URI را مانند تصویر زیر قرار دهید.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

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

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

c8578bf54ade7cee.png

۳. ایجاد توکن به‌روزرسانی

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

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

به تنظیمات بروید و گزینه «استفاده از اعتبارنامه‌های OAuth خودتان» را بررسی کنید. پس از اینکه شناسه کلاینت OAuth و رمز کلاینت را از فصل قبل دریافت کردید، می‌توانید آنها را در کادرهای متنی مربوطه قرار دهید. ace79f71603a922.png

ad82eca7a99c446c.png

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

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

eff5408ba160aad1.png

روی «مجاز کردن APIها» کلیک کنید، صفحه بعدی را مشاهده خواهید کرد.

ایجاد توکن به‌روزرسانی

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

e8c6860d61ad73fd.png

۴. آماده‌سازی Colab برای اجرای کد

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

برای استفاده از آن، لطفاً به آدرس https://colab.research.google.com/ مراجعه کنید.

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

6b95020b3d3369ae.png

اگر روی «دفترچه یادداشت جدید» کلیک کنید، برگه جدید را که برای شما آماده است، خواهید دید.

۵. تولید تصویر از طریق هوش مصنوعی گوگل کلود ورتکس

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

!pip install requests 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]

پس از احراز هویت، آماده‌ی فراخوانی APIهای گوگل کلود هستید.

۶. تولید تصویر از Vertex AI

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

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

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

۷. به تبلیغات گوگل متصل شوید

به حساب گوگل ادز خود متصل شوید

شما به یک توکن توسعه‌دهنده از گوگل ادز نیاز دارید. می‌توانید برای توکن توسعه‌دهنده پایه یا استاندارد درخواست دهید، اما برای اهداف آزمایشی، توکن آزمایشی نیز موجود است. به حساب 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 سرویس گوگل ادز را بارگذاری کنید. شناسه مشتری معمولاً به فرمت xxx-xxxx-xxx است، اما باید '-' را حذف کنید.

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

استعلام حساب گوگل ادز

حالا می‌توانید با 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)

لیست دارایی‌های موجود در حساب گوگل ادز را در قالب json مشاهده خواهید کرد. اگر چیزی شبیه به این را مشاهده کردید

ad_group_ad {

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

}

۸. تصویر را در گوگل ادز آپلود کنید

آپلود

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

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

۹. تبریک

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

یاد گرفتی.

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