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.
- Tipo de usuário: externo
- Status da publicação: em produção

Adicione o seguinte URI a "URIs de redirecionamento autorizados"
Coloque o URI abaixo como na captura de tela abaixo.
https://developers.google.com/oauthplayground

Copiar ID do cliente e chave secreta do cliente
Você pode receber o ID do cliente e a chave secreta do cliente.

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. 

Adicionar o escopo
Você pode adicionar o escopo https://www.googleapis.com/auth/adwords na área abaixo.

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.

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.

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!

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.

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