۱. مقدمه
آنچه خواهید ساخت
در این آزمایشگاه کد، شما یاد خواهید گرفت که چگونه با استفاده از هوش مصنوعی Vertex تصاویر تولید کنید و آن را به گوگل ادز ارسال کنید تا از این تصاویر به عنوان تصاویر در کمپینها استفاده شود.
آنچه یاد خواهید گرفت
- نحوه تولید تصاویر از GCP و Vertex AI
- نحوه آپلود تصاویر در گوگل ادز
- نحوه استفاده از آن در تبلیغات گوگل
آنچه نیاز دارید
- حساب کاربری گوگل ادز
- حساب GCP
۲. اعتبارنامههای گوگل ادز را دریافت کنید
این بخش برای دریافت تصاویر از گوگل ادز مورد نیاز است. برای دسترسی به گوگل ادز از طریق کولب، به اعتبارنامههای مناسب نیاز دارید.
ایجاد اعتبارنامه -> ایجاد «شناسه کلاینت OAuth» -> برنامه وب
برای دریافت اعتبارنامههای مناسب برای اتصال به گوگل ادز، باید به اعتبارنامههای ابری دسترسی داشته باشید.
اگر صفحه رضایت را پیکربندی نکردهاید، ابتدا صفحه رضایت را تنظیم کنید.
- نوع کاربر: خارجی
- وضعیت انتشار: در دست تولید

آدرس اینترنتی زیر را به «URI های ریدایرکت مجاز» اضافه کنید.
زیر URI را مانند تصویر زیر قرار دهید.
https://developers.google.com/oauthplayground

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

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

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

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

۴. آمادهسازی Colab برای اجرای کد
Colab یک دفترچه کد مفید است که با پایتون ارائه میشود. گزینه پیشفرض، قدرت محاسباتی نسبتاً زیادی را ارائه میدهد. همچنین میتوانید از هر پلتفرمی برای فراخوانی REST API مربوط به هوش مصنوعی Google Cloud Vertex استفاده کنید.
برای استفاده از آن، لطفاً به آدرس https://colab.research.google.com/ مراجعه کنید.
به [فایل → یادداشت جدید] بروید و شروع به نوشتن کدهای جدید کنید.

اگر روی «دفترچه یادداشت جدید» کلیک کنید، برگه جدید را که برای شما آماده است، خواهید دید.
۵. تولید تصویر از طریق هوش مصنوعی گوگل کلود ورتکس
کتابخانهها را وارد کنید
!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)
اگر چند ثانیه صبر کنید، نتیجه را خواهید دید. خیلی ساده است!

۷. به تبلیغات گوگل متصل شوید
به حساب گوگل ادز خود متصل شوید
شما به یک توکن توسعهدهنده از گوگل ادز نیاز دارید. میتوانید برای توکن توسعهدهنده پایه یا استاندارد درخواست دهید، اما برای اهداف آزمایشی، توکن آزمایشی نیز موجود است. به حساب 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 بررسی کنید. در اینجا نمونهای از تصویر را مشاهده میکنید.

۹. تبریک
تبریک میگویم، شما با موفقیت از تصویر موجود، تصاویر زیبا ایجاد کردید!
یاد گرفتی.
- نحوه تولید داراییهای تصویری از طریق هوش مصنوعی مولد (Vertex AI)
- نحوه آپلود تصاویر در گوگل ادز و استفاده از آنها به عنوان داراییهای تصویری