Cách tạo hình ảnh từ Vertex AI và Tải lên Google Ads

1. Giới thiệu

Sản phẩm bạn sẽ tạo ra

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách tạo hình ảnh bằng Vertex AI và gửi hình ảnh đó đến Google Ads để có thể sử dụng các thành phần đó làm thành phần hình ảnh trong chiến dịch.

Kiến thức bạn sẽ học được

  • Cách tạo hình ảnh từ GCP, Vertex AI
  • Cách tải hình ảnh lên Google Ads
  • Cách sử dụng tính năng này trong Google Ads

Bạn cần có

  • Tài khoản Google Ads
  • Tài khoản GCP

2. Nhận thông tin đăng nhập Google Ads

Bạn cần có phần này để lấy thành phần hình ảnh từ Google Ads. Để truy cập vào Google Ads từ Colab, bạn cần có thông tin đăng nhập phù hợp.

Tạo thông tin đăng nhập -> Tạo 'Mã ứng dụng khách OAuth' -> Ứng dụng web

Để có thông tin xác thực phù hợp để kết nối Google Ads, bạn cần truy cập vào Thông tin xác thực trên đám mây.

Nếu bạn chưa định cấu hình màn hình xin phép, hãy thiết lập màn hình xin phép trước.

  1. Loại người dùng: Bên ngoài
  2. Trạng thái phát hành: Phát hành công khai

6ecf963c5957379d.png

Thêm URI sau vào "URI chuyển hướng được uỷ quyền"

Đặt URI bên dưới như ảnh chụp màn hình bên dưới.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Sao chép mã ứng dụng khách và khoá bí mật của ứng dụng khách

Bạn có thể lấy mã ứng dụng khách và khoá bí mật của ứng dụng khách.

c8578bf54ade7cee.png

3. Tạo mã làm mới

Quyền truy cập vào OAuth Playground

Bạn có thể dễ dàng phát hành mã làm mới tạm thời tại OAuth Playground.

Chuyển đến phần cài đặt rồi đánh dấu vào "Sử dụng thông tin đăng nhập OAuth của riêng bạn". Sau khi có được mã ứng dụng khách OAuth và khoá bí mật của ứng dụng khách từ chương trước, bạn có thể đặt chúng vào các hộp văn bản tương ứng. ace79f71603a922.png

ad82eca7a99c446c.png

Thêm phạm vi

Bạn có thể thêm phạm vi https://www.googleapis.com/auth/adwords vào khu vực bên dưới.

eff5408ba160aad1.png

Nhấp vào Authorize APIs (Uỷ quyền API) để xem màn hình tiếp theo.

Tạo mã làm mới

Nhấp vào "Exchange authorization code for tokens" (Đổi mã uỷ quyền lấy mã thông báo) và bạn sẽ thấy mã làm mới.

e8c6860d61ad73fd.png

4. Chuẩn bị Colab để thực thi mã

Colab là sổ tay mã nguồn tiện dụng đi kèm với Python. Lựa chọn mặc định cung cấp một lượng sức mạnh tính toán khá lớn. Bạn cũng có thể sử dụng bất kỳ nền tảng nào để gọi API REST của Google Cloud Vertex AI.

Vui lòng truy cập vào https://colab.research.google.com/ để sử dụng.

Chuyển đến [Tệp → Ghi chú mới] rồi bắt đầu viết mã mới.

6b95020b3d3369ae.png

Nếu nhấp vào Sổ tay mới, bạn sẽ thấy trang mới đã sẵn sàng để sử dụng.

5. Tạo hình ảnh thông qua Vertex AI của Google Cloud

Nhập thư viện

!pip install requests google-ads

Trước tiên, hãy cài đặt các thư viện cho Google Ads và yêu cầu API. Bạn cần khởi động lại thời gian chạy sau khi cài đặt các thư viện.

Bạn cũng có thể tải các thư viện thiết yếu.

import requests
import json
import base64

from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image

Nhận thông tin xác thực

Bạn sẽ được yêu cầu uỷ quyền cho Tài khoản Google của mình.

auth.authenticate_user()

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

Sau khi tự uỷ quyền, bạn có thể gọi các API của Google Cloud.

6. Tạo hình ảnh từ Vertex AI

Chuẩn bị câu lệnh và yêu cầu POST

Trước tiên, bạn phải có mã dự án trên đám mây của Google. Bạn có thể lấy thông tin này từ Google Cloud. Bạn cần có một câu lệnh dạng văn bản và bạn cũng có thể đặt số lượng hình ảnh cần thiết. Để biết thêm các lựa chọn, vui lòng tham khảo tài liệu chính thức.

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.

Bạn có thể viết bất cứ nội dung nào trong câu lệnh dạng văn bản. Ở đây, chúng ta muốn tạo ra những hình ảnh có cả mèo và máy tính trong một bức ảnh.

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
    }
}

Yêu cầu tạo hình ảnh

Khi đã sẵn sàng cho json, bạn có thể yêu cầu tạo hình ảnh. Dưới đây là yêu cầu http điển hình.

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)

Nếu đợi vài giây, bạn sẽ nhận được kết quả. Rất đơn giản!

dec38d2d3f7faab8.png

7. Kết nối với Google Ads

Kết nối với tài khoản Google Ads của bạn

Bạn cần có mã của nhà phát triển từ Google Ads. Bạn có thể đăng ký mã thông báo nhà phát triển cơ bản hoặc tiêu chuẩn, nhưng mã thông báo kiểm thử cũng có sẵn cho mục đích kiểm thử. Chuyển đến tài khoản MCC của bạn. Trong thẻ công cụ và cài đặt, bạn sẽ thấy trung tâm API. Trong phần API, bạn sẽ tìm thấy mã thông báo của mình.

Bạn nên chuẩn bị sẵn mã ứng dụng khách, khoá bí mật của ứng dụng khách và mã làm mới ở chương trước.

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
}

Sau khi thiết lập thông tin đăng nhập, bạn có thể tải API GoogleAdsService. Mã khách hàng thường có định dạng xxx-xxxx-xxx, nhưng bạn nên xoá "-".

client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"

Truy vấn tài khoản Google Ads

Giờ đây, bạn có thể kiểm thử bằng googleads_service. Hãy truy vấn xem chúng ta có những loại thành phần nào trong tài khoản 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)

Bạn sẽ thấy danh sách các thành phần trong tài khoản Google Ads ở định dạng json. Nếu bạn thấy nội dung như

ad_group_ad {

`images { asset: "customers/1234567890/assets/09876543210" }` 

}

8. Tải thành phần hình ảnh lên Google Ads

Tải

Ở bước cuối cùng, chúng ta sẽ tải các thành phần đã tạo lên 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])

Sau vài giây, bạn có thể kiểm tra thành phần đã tải lên thông qua Giao diện người dùng Google Ads. Dưới đây là ảnh chụp màn hình mẫu.

7f2fb6063e5ae675.png

9. Xin chúc mừng

Xin chúc mừng! Bạn đã tạo thành công các thành phần hình ảnh đẹp từ hình ảnh hiện có!

Kiến thức bạn học được

  • Cách tạo thành phần hình ảnh thông qua AI tạo sinh (Vertex AI)
  • Cách tải hình ảnh lên Google Ads và sử dụng hình ảnh đó làm thành phần hình ảnh