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

1. Введение

Что ты построишь

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

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

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

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

  • Аккаунт Google Рекламы
  • Аккаунт GCP

2. Получите учетные данные Google Рекламы.

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

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

Чтобы получить правильные учетные данные для подключения Google Рекламы, вам необходимо получить доступ к учетным данным Cloud .

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

  1. Тип пользователя: Внешний
  2. Статус публикации: В производстве

6ecf963c5957379d.png

Добавьте следующий URI в «Авторизованные URI перенаправления»

Поместите ниже URI, как показано на снимке экрана ниже.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Скопируйте идентификатор клиента и секрет клиента

Вы можете получить идентификатор клиента и секрет клиента.

c8578bf54ade7cee.png

3. Создать токен обновления

Доступ к игровой площадке OAuth

Вы можете легко выдать временный токен обновления на 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. Вы можете получить его из 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 Рекламе

Подключитесь к своему аккаунту Google Рекламы

Вам понадобится токен разработчика от 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 Рекламы

Теперь вы можете протестировать с помощью 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 Рекламы в формате json. Если вы видите что-то вроде

ad_group_ad {

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

}

8. Загрузите изображение в Google Рекламу.

Загрузить

На последнем этапе мы собираемся загрузить сгенерированные ресурсы в 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 Рекламу и использовать их в качестве графических ресурсов