איך יוצרים תמונה מ-Vertex AI ומעלים אותה ל-Google Ads

1. מבוא

מה תפַתחו

ב-Codelab הזה תלמדו איך ליצור תמונות באמצעות Vertex AI ולשלוח אותן ל-Google Ads כדי שאפשר יהיה להשתמש בנכסים האלה כנכסי תמונות בקמפיינים.

מה תלמדו

  • איך יוצרים תמונות מ-GCP ומ-Vertex AI
  • איך מעלים תמונות ל-Google Ads
  • איך משתמשים בזה ב-Google Ads

מה תצטרכו

  • חשבון Google Ads
  • חשבון GCP

2. קבלת פרטי כניסה ל-Google Ads

החלק הזה נדרש כדי לקבל נכסי תמונות מ-Google Ads. כדי לגשת ל-Google Ads מ-Colab, צריך להזין את פרטי הכניסה המתאימים.

Create credentials -> Create 'OAuth client ID' -> Web Application (יצירת פרטי כניסה -> יצירת 'מזהה לקוח OAuth' -> אפליקציית אינטרנט)

כדי לקבל את פרטי הכניסה המתאימים לקישור Google Ads, צריך לגשת אל פרטי הכניסה ל-Cloud.

אם לא הגדרתם מסך הסכמה, צריך להגדיר אותו קודם.

  1. סוג המשתמש: חיצוני
  2. סטטוס פרסום: בסביבת ייצור

6ecf963c5957379d.png

מוסיפים את ה-URI הבא אל 'כתובות URI מורשות להפניה אוטומטית'

מזינים את ה-URI שמופיע בצילום המסך שלמטה.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

העתקת מזהה הלקוח וסוד הלקוח

אפשר לקבל מזהה לקוח וסוד לקוח.

c8578bf54ade7cee.png

3. יצירת טוקן רענון

גישה ל-OAuth Playground

אפשר להנפיק בקלות טוקן רענון זמני ב-OAuth Playground.

עוברים להגדרות ומסמנים את האפשרות 'שימוש בפרטי הכניסה שלכם ב-OAuth'. אחרי שמקבלים מזהה לקוח וסוד לקוח של לקוח OAuth מהפרק הקודם, אפשר להזין אותם בתיבות הטקסט המתאימות. ace79f71603a922.png

ad82eca7a99c446c.png

הוספת ההיקף

אפשר להוסיף את ההיקף https://www.googleapis.com/auth/adwords לאזור שבהמשך.

eff5408ba160aad1.png

לוחצים על Authorize APIs (אישור ממשקי API) ומוצג המסך הבא.

יצירת טוקן רענון

לוחצים על 'Exchange authorization code for tokens' (החלפת קוד הרשאה באסימונים) ואסימון הרענון יופיע.

e8c6860d61ad73fd.png

4. הכנת Colab להרצת הקוד

‫Colab הוא מחברת קוד שימושית שמגיעה עם Python. אפשרות ברירת המחדל מספקת כמות נדיבה של כוח מחשוב. אפשר גם להשתמש בכל פלטפורמה כדי לקרוא ל-API בארכיטקטורת REST של Google Cloud Vertex AI.

כדי להשתמש ב-Colab, צריך להיכנס לכתובת https://colab.research.google.com/.

עוברים אל [קובץ → הערה חדשה] ומתחילים לכתוב קודים חדשים.

6b95020b3d3369ae.png

אם לוחצים על 'מחברת חדשה', רואים את הגיליון החדש מוכן.

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

אימות

תתבקשו לאשר את חשבון Google.

auth.authenticate_user()

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

אחרי שתאשרו את עצמכם, תוכלו להפעיל ממשקי Google Cloud API.

6. יצירת תמונה מ-Vertex AI

הכנת ההנחיה ובקשת POST

קודם כל, צריך לדעת מה מזהה הפרויקט בענן ב-Google Cloud. אפשר לקבל אותו מ-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
}

אחרי שמגדירים את פרטי הכניסה, אפשר לטעון את GoogleAdsService API. מספר הלקוח בדרך כלל בפורמט 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. נריץ שאילתה כדי לראות אילו נכסים יש לנו בחשבון Google Ads.

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

העלאת

בשלב האחרון, נטען את הנכסים שנוצרו אל 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. הנה צילום מסך לדוגמה.

7f2fb6063e5ae675.png

9. מזל טוב

מזל טוב, יצרת בהצלחה נכסי תמונות יפים מהתמונה הקיימת!

מה למדתם

  • איך יוצרים נכסי תמונות באמצעות AI גנרטיבי (Vertex AI)
  • איך מעלים תמונות ל-Google Ads ומשתמשים בהן כנכסי תמונות