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 possam ser usadas como recursos de imagem nas campanhas.

O que você vai aprender

  • Como gerar imagens no GCP e na Vertex AI
  • Como fazer upload de imagens no Google Ads
  • Como usar no Google Ads

O que é necessário

  • Conta do Google Ads
  • Conta do GCP

2. Receber credenciais do Google Ads

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

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

Para receber as credenciais adequadas e conectar o Google Ads, acesse Credenciais do Cloud.

Se você ainda não tiver configurado a tela de permissão, configure a tela de permissão primeiro.

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

6ecf963c5957379d.png

Adicione o seguinte URI a "URIs de redirecionamento autorizados"

Coloque o URI abaixo como na captura de tela abaixo.

https://developers.google.com/oauthplayground

b5d054a6cac40869.png

Copiar ID do cliente e chave secreta do cliente

Você pode receber o ID do cliente 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 marque "Usar suas próprias credenciais do OAuth". Depois de adquirir o ID do cliente e a chave secreta do cliente OAuth no capítulo anterior, coloque-os nas caixas de texto correspondentes. ace79f71603a922.png

ad82eca7a99c446c.png

Adicionar o escopo

Você pode 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 vem com o Python. A opção padrão oferece uma quantidade bastante generosa de capacidade de computação. Você também pode usar qualquer plataforma para chamar a API REST da Vertex AI do Google Cloud.

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

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

6b95020b3d3369ae.png

Se você clicar em "Novo bloco de notas", a nova planilha vai aparecer pronta para uso.

5. Gerar imagens com a Vertex AI do Google Cloud

Importar bibliotecas

!pip install requests google-ads

Primeiro, instale as bibliotecas para o Google Ads e as solicitações de API. Reinicie 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

Será necessário autorizar sua Conta do Google.

auth.authenticate_user()

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

Depois de se autorizar, você poderá chamar as APIs do Cloud.

6. Gerar imagem com a Vertex AI

Prepare seu comando e a solicitação POST

Primeiro, você precisa ter o ID do projeto na nuvem do Google. Você pode fazer isso no Google Cloud. Você precisa de um comando de texto e também pode definir quantas imagens quer. 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 qualquer coisa no comando de texto. Aqui, queremos gerar as imagens que têm gato e computador juntos em uma única foto.

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

Pedir geração de imagens

Quando você estiver pronto para o JSON, poderá solicitar a geração de imagens. Confira 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)

Se você esperar alguns segundos, vai receber o resultado. É muito simples!

dec38d2d3f7faab8.png

7. Conecte-se ao Google Ads

Conecte-se à sua conta do Google Ads

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

O ID do cliente, a chave secreta do cliente e os tokens de atualização devem 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, é possível carregar a API GoogleAdsService. O ID de cliente geralmente está no formato xxx-xxxx-xxx, mas você precisa remover o "-".

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

Consultando a conta do Google Ads

Agora você pode testar com googleads_service. Vamos consultar que tipo de recursos temos 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ê vai ver a lista de recursos na conta do Google Ads em formato JSON. Se você encontrar algo como

ad_group_ad {

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

}

8. Fazer upload de recursos de imagem para o Google Ads

Enviar

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

Depois de alguns segundos, você poderá verificar o recurso enviado pelo front-end do Google Ads. Confira abaixo uma captura de tela de exemplo.

7f2fb6063e5ae675.png

9. Parabéns

Parabéns! Você gerou recursos de imagem incríveis com base na imagem atual.

Você aprendeu

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