איך יוצרים תמונה מ-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, נדרשים פרטי כניסה מתאימים.

ליצירת פרטי כניסה -> יצירת 'מזהה לקוח OAuth' -> אפליקציית אינטרנט

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

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

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

6ecf963c5957379d.png

מוסיפים את ה-URI הבא ל-AuthorizedRedirect URIs

יש להוסיף מתחת ל-URI כצילום המסך שבהמשך.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

העתקת Client-ID וסוד לקוח

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

c8578bf54ade7cee.png

3. יצירת אסימון רענון

גישה ל-OAuth Playground

אתם יכולים להנפיק בקלות אסימון רענון זמני ב-OAuth Playground.

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

ad82eca7a99c446c.png

הוספת ההיקף

ניתן להוסיף את ההיקף https://www.googleapis.com/auth/adwords לאזור שלמטה.

eff5408ba160aad1.png

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

יצירת אסימון רענון

לוחצים על 'החלפת קוד הרשאה לאסימונים'. אסימון הרענון יופיע.

e8c6860d61ad73fd.png

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

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

כדי להשתמש בו, צריך לעבור לכתובת 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 APIs.

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

7f2fb6063e5ae675.png

9. מזל טוב

מעולה! יצרתם בהצלחה נכסי תמונות יפהפיים מהתמונה הקיימת.

למדתם

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