วิธีสร้างรูปภาพจาก 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 ต่อไปนี้ลงใน "URL การเปลี่ยนเส้นทางที่ได้รับอนุญาต"

ใส่ 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" และคุณจะเห็นหน้าจอถัดไป

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

คลิก "รหัสการให้สิทธิ์ Exchange สำหรับโทเค็น" แล้วคุณจะเห็นโทเค็นการรีเฟรช

e8c6860d61ad73fd.png

4. เตรียม Colab ให้ดำเนินการกับโค้ด

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

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

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

6b95020b3d3369ae.png

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

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 API

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])

หลังจากผ่านไป 2-3 วินาที คุณจะสามารถตรวจสอบชิ้นงานที่อัปโหลดผ่านฟรอนท์เอนด์ของ Google Ads ได้ ภาพหน้าจอตัวอย่างมีดังนี้

7f2fb6063e5ae675.png

9. ขอแสดงความยินดี

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

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

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