วิธีสร้างรูปภาพจาก 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 ต่อไปนี้ลงใน "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

คลิก "ให้สิทธิ์ API" แล้วคุณจะเห็นหน้าจอถัดไป

สร้างโทเค็นการรีเฟรช

คลิก "เปลี่ยนรหัสการให้สิทธิ์ของโทเค็น" แล้วคุณจะเห็นโทเค็นการรีเฟรช

e8c6860d61ad73fd.png

4. เตรียม Colab ให้พร้อมสำหรับการเรียกใช้โค้ด

Colab คือสมุดบันทึกโค้ดที่มีประโยชน์ซึ่งมาพร้อมกับ Python ตัวเลือกเริ่มต้นจะให้พลังในการประมวลผลค่อนข้างมาก นอกจากนี้ คุณยังใช้แพลตฟอร์มใดก็ได้เพื่อเรียก REST API ของ Vertex AI ใน Google Cloud

โปรดไปที่ https://colab.research.google.com/ เพื่อใช้งาน

ไปที่ [File → New note] แล้วเริ่มเขียนโค้ดใหม่

6b95020b3d3369ae.png

หากคลิก Notebook ใหม่ คุณจะเห็นชีตใหม่ที่พร้อมใช้งาน

5. สร้างรูปภาพผ่าน Vertex AI ของ Google Cloud

นำเข้าไลบรารี

!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 คุณสามารถรับได้จาก 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. ขอแสดงความยินดี

ขอแสดงความยินดี คุณสร้างชิ้นงานรูปภาพที่สวยงามจากรูปภาพที่มีอยู่เรียบร้อยแล้ว

คุณได้เรียนรู้

  • วิธีสร้างชิ้นงานรูปภาพผ่าน Generative AI (Vertex AI)
  • วิธีอัปโหลดรูปภาพไปยัง Google Ads และใช้เป็นชิ้นงานรูปภาพ