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.
- Loại người dùng: Bên ngoài
- Trạng thái phát hành: Phát hành công khai

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

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.

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. 

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.

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.

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.

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!

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.

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