Как создать изображение с помощью Vertex AI и загрузить в Google Ads

1. Введение

Что вы построите

В этом практическом занятии вы научитесь генерировать изображения с помощью Vertex AI и отправлять их в Google Ads, чтобы эти изображения можно было использовать в рекламных кампаниях.

Что вы узнаете

  • Как создавать изображения из GCP, Vertex AI
  • Как загружать изображения в рекламу Google
  • Как использовать это в Google Ads

Что вам понадобится

  • Аккаунт Google Ads
  • Учетная запись GCP

2. Получите учетные данные Google Ads.

Эта часть необходима для получения графических ресурсов из Google Ads. Для доступа к Google Ads из Colab вам потребуются соответствующие учетные данные.

Создать учетные данные -> Создать «Идентификатор клиента OAuth» -> Веб-приложение

Для получения корректных учетных данных для подключения Google Ads вам потребуется доступ к облачным учетным данным .

Если вы еще не настроили экран согласия, сначала настройте его.

  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 Google Cloud Vertex AI.

Для использования перейдите по ссылке https://colab.research.google.com/ .

Перейдите в меню [Файл → Новая заметка] и начните писать новый код.

6b95020b3d3369ae.png

Если вы нажмете «Новая записная книжка», вы увидите готовый новый лист.

5. Создание изображения с помощью Google Cloud Vertex AI

Импорт библиотек

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

После авторизации вы готовы вызывать API Google Cloud.

6. Сгенерируйте изображение с помощью Vertex AI.

Подготовьте подсказку и POST-запрос.

Во-первых, вам понадобится идентификатор вашего проекта в Google Cloud. Вы можете получить его на сайте 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
}

После указания учетных данных вы можете загрузить API GoogleAdsService. Идентификатор клиента обычно имеет формат 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. Давайте запросим, ​​какие типы ресурсов у нас есть в рекламном аккаунте.

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. Поздравляем!

Поздравляем, вы успешно создали красивые графические элементы на основе существующего изображения!

Вы узнали

  • Как создавать графические ресурсы с помощью генеративного ИИ (Vertex AI)
  • Как загружать изображения в Google Ads и использовать их в качестве графических ресурсов.