1. Introducción
Qué compilarás
En este codelab, aprenderás a generar imágenes con Vertex AI y enviarlas a Google Ads para que los recursos se puedan usar como recursos de imagen en las campañas.
Qué aprenderás
- Cómo generar imágenes desde GCP o Vertex AI
- Cómo subir imágenes a Google Ads
- Cómo utilizarlas en Google Ads
Requisitos
- Cuenta de Google Ads
- Cuenta de GCP
2. Obtén credenciales de Google Ads
Esta parte es necesaria para obtener recursos de imagen de Google Ads. Para acceder a Google Ads desde Colab, necesitas las credenciales adecuadas.
Crear credenciales -> Crea un “ID de cliente de OAuth” -> Aplicación web
Para obtener las credenciales adecuadas y conectar Google Ads, debes acceder a las credenciales de Cloud.
Si aún no configuraste la pantalla de consentimiento, primero configura la pantalla de consentimiento.
- Tipo de usuario: externo
- Estado de la publicación: En producción
Agrega el siguiente URI a “URI de redireccionamiento autorizados”
Escribe debajo del URI como en la siguiente captura de pantalla.
https://developers.google.com/oauthplayground
Copiar el ID de cliente y el secreto del cliente
Puedes obtener el ID de cliente y el secreto del cliente.
3. Cómo generar un token de actualización
Acceso a OAuth Playground
Puedes emitir con facilidad un token de actualización temporal en OAuth Playground.
Ve a la configuración y marca la opción “Usar tus propias credenciales de OAuth”. Una vez que hayas adquirido el ID de cliente de OAuth y el secreto de cliente del capítulo anterior, puedes colocarlos en los cuadros de texto correspondientes.
Agrega el permiso
Puedes agregar el alcance https://www.googleapis.com/auth/adwords en el siguiente área.
Haz clic en Authorize APIs y verás la siguiente pantalla.
Genera un token de actualización
Haz clic en “Intercambiar código de autorización para tokens” y verás el token de actualización.
4. Prepara Colab para ejecutar el código
Colab es el notebook de código práctico que viene con Python. La opción predeterminada proporciona una cantidad bastante generosa de potencia de procesamiento. También puedes usar cualquier plataforma para llamar a la API de REST de Vertex AI de Google Cloud.
Visita https://colab.research.google.com/ para usarla.
Ve a [Archivo → Nota nueva] y comienza a escribir códigos nuevos.
Si haces clic en Nuevo notebook, verás la hoja nueva lista para ti.
5. Genera imágenes con Vertex AI de Google Cloud
Importa las bibliotecas
!pip install requests google-ads
Primero, instala bibliotecas para Google Ads y las solicitudes a la API. Debes reiniciar el entorno de ejecución después de instalar las bibliotecas.
También puedes cargar bibliotecas esenciales.
import requests
import json
import base64
from google.ads import googleads
from google.colab import auth
from IPython.display import display, Image
Obtener autenticación
Se te pedirá que autorices tu Cuenta de Google.
auth.authenticate_user()
access_token = !gcloud auth print-access-token
access_token = access_token[0]
Después de que te autorices, estarás listo para llamar a las APIs de Google Cloud.
6. Generar imagen a partir de Vertex AI
Prepara la instrucción y la solicitud POST
Primero, debes tener el ID del proyecto de Google Cloud. Puedes obtenerlo en Google Cloud. Necesitas una instrucción de texto y también puedes configurar la cantidad de imágenes que necesitas. Para conocer más opciones, consulta la documentación 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.
Puedes escribir lo que quieras dentro de la instrucción de texto. Aquí, queremos generar las imágenes que tienen gato y computadora juntas en una sola imagen.
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
}
}
Cómo solicitar la generación de imágenes
Una vez que tengas todo listo para usar JSON, puedes solicitar la generación de la imagen. A continuación, se muestra una solicitud 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)
Si esperas varios segundos, obtendrás el resultado. ¡Muy sencillo!
7. Conéctate con Google Ads
Vincula tu cuenta de Google Ads
Necesita un token de desarrollador de Google Ads. Puedes solicitar un token de desarrollo básico o estándar, pero el token de prueba también está disponible para realizar pruebas. Ve a tu cuenta de MCC. En la pestaña de herramientas y configuración, verás el centro de API. Allí, encontrarás tu token en la sección de la API.
El ID de cliente, el secreto de cliente y los tokens de actualización deberían estar listos en el 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
}
Una vez configuradas las credenciales, puedes cargar la API de GoogleAdsService. El ID del cliente suele tener el formato xxx-xxxx-xxx, pero debes quitar "-".
client = googleads.client.GoogleAdsClient.load_from_dict(credentials, version='v13')
googleads_service = client.get_service("GoogleAdsService")
customer_id = "1234567890"
Consulta de una cuenta de Google Ads
Ahora, puede realizar la prueba con googleads_service. Preguntemos qué tipo de recursos tenemos en la cuenta de 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)
Verás la lista de recursos en la cuenta de Google Ads en formato JSON. Si ves algo como
ad_group_ad {
`images { asset: "customers/1234567890/assets/09876543210" }`
}
8. Cómo subir un recurso de imagen a Google Ads
Subir
En el último paso, vamos a subir los recursos generados a 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])
Después de unos segundos, podrás revisar el recurso subido a través del frontend de Google Ads. Esta es una captura de pantalla de ejemplo.
9. Felicitaciones
Felicitaciones, generaste correctamente recursos de imagen atractivos a partir de la imagen existente.
Aprendiste lo siguiente:
- Cómo generar recursos de imagen con la IA generativa (Vertex AI)
- Cómo subir imágenes a Google Ads y utilizarlas como recursos de imagen