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 này 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 bằng GCP, Vertex AI
  • Cách tải hình ảnh lên Google Ads
  • Cách sử dụng đối tượng này trong Google Ads

Bạn cần có

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

2. Lấy thông tin đăng nhập Google Ads

Đây là phần cần thiết để tải 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 xác thực -> Tạo "Mã ứng dụng OAuth" -> Ứng dụng web

Để có thông tin đăng nhập phù hợp để kết nối với Google Ads, bạn cần truy cập vào Thông tin đăng nhập Cloud.

Nếu bạn chưa thiết lập màn hình đồng ý, trước tiên, hãy thiết lập màn hình đồng ý.

  1. Loại người dùng: Bên ngoài
  2. Trạng thái xuất bản: Đang phát hành công khai

6ecf963c5957379d.png.

Thêm URI sau vào "URI chuyển hướng được phép"

Đặ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à mật khẩu ứng dụng khách

Bạn có thể lấy mã ứng dụng khách và mật khẩu ứng dụng khách.

c8578bf54ade7cee.png

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

Truy cập vào OAuth Playground

Bạn có thể dễ dàng đưa ra mã làm mới tạm thời tại OAuth Playground.

Chuyển đến phần cài đặt rồi kiểm tra mục "Sử dụng thông tin đăng nhập OAuth của riêng bạn". Sau khi nhận được mã ứng dụng khách OAuth và mật khẩu ứ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 uỷ quyền API và bạn sẽ thấy màn hình tiếp theo.

Tạo mã làm mới

Nhấp vào "Mã ủy quyền trao đổi cho 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à một sổ tay viết mã tiện dụng đi kèm với Python. Tuỳ chọn mặc định cung cấp sức mạnh tính toán khá phong phú. Bạn cũng có thể sử dụng bất kỳ nền tảng nào để gọi API REST của Vertex AI của Google Cloud.

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

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 tính mới sẵn sàng cho bạn.

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 thư viện cho Google Ads và các yêu cầu API. Bạn cần khởi động lại thời gian chạy sau khi cài đặt 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 phần xác thực

Bạn sẽ được yêu cầu cấp 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ự cấp phép, bạn đã sẵn sàng gọi Google Cloud API.

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 cần có mã dự án trên Google Cloud. Bạn có thể lấy địa chỉ đó từ Google Cloud. Bạn cần một câu lệnh dạng văn bản cũng như có thể đặt số lượng hình ảnh mình cần. Để 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 gì vào lời nhắc bằng văn bản. Ở đây, chúng ta muốn tạo các hình ảnh có mèo và máy tính kết hợp với nhau trong một bức ảnh duy nhất.

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 tạo tệp json, bạn có thể yêu cầu tạo hình ảnh. Bên dưới là yêu cầu http thông thường.

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 bạn đợ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

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 dev cơ bản hoặc tiêu chuẩn, nhưng mã thông báo thử nghiệm cũng được cung cấp cho mục đích thử nghiệm. 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ẽ thấy mã thông báo của mình ở đó.

Mã ứng dụng khách, mật khẩu ứng dụng khách và mã làm mới phải sẵn sàng ở 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 ở đị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ể thử nghiệm bằng googleads_service. Hãy truy vấn những loại thành phần mà chúng ta có 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 thông tin 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 sẽ 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.pngs

9. Xin chúc mừng

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

Bạn đã tìm hiểu về

  • 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