Como gerar uma imagem da Vertex AI e fazer o upload no Google Ads

1. Introdução

O que você vai criar

Neste codelab, você vai aprender a gerar imagens usando a Vertex AI e enviá-las ao Google Ads para que os recursos possam ser usados como recursos de imagem nas campanhas.

O que você vai aprender

  • Como gerar imagens do GCP e da Vertex AI.
  • Como fazer o upload de imagens para o Google Ads
  • Como usar no Google Ads

O que é necessário

  • Conta do Google Ads
  • Conta do GCP

2. Receba credenciais do Google Ads

Essa parte é necessária para buscar recursos de imagem do Google Ads. Para acessar o Google Ads pelo Colab, você precisa das credenciais adequadas.

Criar credenciais -> Criar o "ID do cliente OAuth" -> Aplicativo da Web

Para ter as credenciais adequadas e conectar o Google Ads, você precisa acessar as credenciais do Cloud.

Se você não configurou a tela de consentimento, faça isso primeiro.

  1. Tipo de usuário: externo
  2. Status da publicação: em produção

6ecf963c5957379d.png

Adicione o URI a seguir a "URIs de redirecionamento autorizados"

Coloque abaixo do URI, como na captura de tela abaixo.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Copiar o ID e a chave secreta do cliente

É possível conseguir o ID e a chave secreta do cliente.

c8578bf54ade7cee.png

3. Gerar token de atualização

Acesso ao OAuth Playground

É fácil emitir um token de atualização temporário no OAuth Playground.

Acesse as configurações e verifique a opção "Use suas próprias credenciais do OAuth". Depois de adquirir o ID do cliente OAuth e a chave secreta do cliente do capítulo anterior, coloque-os nas caixas de texto correspondentes. ace79f71603a922.png

ad82eca7a99c446c.png

Adicionar o escopo

É possível adicionar o escopo https://www.googleapis.com/auth/adwords na área abaixo.

eff5408ba160aad1.png

Clique em Autorizar APIs para abrir a próxima tela.

Gerar token de atualização

Clique em "Trocar código de autorização por tokens" para ver o token de atualização.

e8c6860d61ad73fd.png

4. Preparar o Colab para executar o código

O Colab é o notebook de código prático que acompanha o Python. A opção padrão oferece uma quantidade generosa de capacidade de computação. Também é possível usar qualquer plataforma para chamar a API REST da Vertex AI do Google Cloud.

Acesse https://colab.research.google.com/ para usar o recurso.

Acesse [Arquivo → Nova nota] e comece a escrever novos códigos.

6b95020b3d3369ae.png

Se clicar em Novo notebook, você verá a nova planilha pronta para você.

5. Gerar imagem com a Vertex AI do Google Cloud

Importar bibliotecas

!pip install requests google-ads

Primeiro, instale bibliotecas para o Google Ads e solicitações de API. É necessário reiniciar o ambiente de execução depois de instalar as bibliotecas.

Também é possível carregar bibliotecas essenciais.

import requests
import json
import base64

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

Receber autenticação

Você precisará autorizar sua Conta do Google.

auth.authenticate_user()

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

Depois de autorizar, você pode chamar as APIs do Google Cloud.

6. Gerar imagem da Vertex AI

Preparar seu comando e solicitação POST

Primeiro, você precisa ter o ID do projeto do Google Cloud. É possível consegui-lo no Google Cloud. Você precisa de um comando de texto e também pode definir de quantas imagens precisa. Para mais opções, consulte a documentação oficial.

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.

Você pode escrever o que quiser dentro do comando de texto. Aqui, queremos gerar as imagens que mostram o gato e o computador juntos em uma única imagem.

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

Solicitar a geração de imagens

Quando estiver tudo pronto para o JSON, será possível solicitar a geração da imagem. Veja abaixo a solicitação HTTP típica.

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)

Você vai receber o resultado se esperar alguns segundos. Muito simples!

dec38d2d3f7faab8.png

7. Conecte-se ao Google Ads

Conectar à sua conta do Google Ads

Você precisa de um token de desenvolvedor do Google Ads. É possível solicitar um token de desenvolvimento básico ou padrão, mas também há um token de teste disponível para fins de teste. Vá para sua conta da MCC. Na guia "Ferramentas e configurações", você verá a Central de API. Na seção API, você encontrará seu token.

O ID do cliente, a chave secreta do cliente e os tokens de atualização precisam estar prontos no capítulo anterior.

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
}

Depois de definir as credenciais, você pode carregar a API GoogleAdsService. O ID do cliente geralmente está no formato xxx-xxxx-xxx, mas você deve remover "-".

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

Como consultar uma conta do Google Ads

Agora, você pode testar com googleads_service. Vamos consultar os tipos de recursos que estão na conta do 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)

Você verá a lista de recursos na conta do Google Ads no formato JSON. Se você notar algo como

ad_group_ad {

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

}

8. Fazer upload de recurso de imagem no Google Ads

Enviar

Na última etapa, vamos fazer o upload dos recursos gerados no 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])

Após alguns segundos, você poderá verificar o recurso enviado pelo front-end do Google Ads. Aqui está a captura de tela de exemplo.

7f2fb6063e5ae675.png

9. Parabéns

Parabéns! Você gerou lindos recursos de imagem a partir da imagem atual.

Você aprendeu

  • Como gerar recursos de imagem usando a IA generativa (Vertex AI)
  • Como fazer o upload de imagens no Google Ads e usá-las como recursos de imagem