Como Automatizar a Criação de Campanhas no Google Display Ads com Python e Claude

Como Automatizar a Criação de Campanhas no Google Display Ads com Python e Claude

Agências e empresas de marketing digital que operam em alto volume enfrentam um gargalo recorrente: a criação manual de dezenas ou centenas de variações de anúncios para a Rede de Display do Google. O processo de redigir títulos curtos e longos, descrições dentro do limite exato de caracteres e alinhar tudo aos parâmetros de segmentação consome horas operacionais e aumenta a probabilidade de erros humanos.

A integração entre modelos de linguagem avançados (como o Claude da Anthropic) e a Google Ads API em Python permite transformar esse fluxo manual em um pipeline robusto, escalável e determinístico.


Arquitetura da Solução

Para construir um sistema confiável de geração de campanhas em massa, dividimos o fluxo em três camadas:

  1. Geração e Estruturação de Conteúdo: O Claude processa briefings de produtos ou páginas de destino e gera cópias estritamente tipadas.
  2. Validação de Regras de Negócio: Scripts Python validam tamanhos de strings (ex.: títulos curtos de até 30 caracteres, descrições de até 90 caracteres) usando Pydantic.
  3. Deploy via API: O SDK oficial google-ads cria as entidades (Campanhas, Grupos de Anúncios e Responsive Display Ads) diretamente na conta.

1. Geração de Assets com Saída Estruturada (Claude)

Utilizando a API da Anthropic com tool_use ou JSON Mode, garantimos que a IA retorne apenas os campos necessários, respeitando as restrições rígidas do Google Ads.

python
import json
from anthropic import Anthropic
from pydantic import BaseModel, Field

client = Anthropic()

class DisplayAdAsset(BaseModel):
shortheadline: str = Field(…, maxlength=30)
longheadline: str = Field(…, maxlength=90)
description: str = Field(…, maxlength=90)
business
name: str = Field(…, max_length=25)

def generateadcopy(productdescription: str) -> DisplayAdAsset:
prompt = f”””
Gere assets para um anúncio responsivo de display no Google Ads sobre o seguinte produto:
{product
description}

Respeite rigorosamente os limites de caracteres:
- short_headline: max 30 chars
- long_headline: max 90 chars
- description: max 90 chars
- business_name: max 25 chars
"""

response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=500,
    system="Você é um copywriter técnico especializado em Google Display Ads. Retorne apenas JSON.",
    messages=[{"role": "user", "content": prompt}]
)

raw_json = response.content[0].text
data = json.loads(raw_json)
return DisplayAdAsset(**data)

2. Inserção Programática via Google Ads API

Com os dados validados, o próximo passo é associá-los a uma campanha criada via GoogleAdsClient. Como especialista em IA e engenharia de software aplicada a marketing, recomendo estruturar as mutações em lote (Batch Operations) para evitar timeouts em operações de alto volume.

python
from google.ads.googleads.client import GoogleAdsClient

def createresponsivedisplayad(
client: GoogleAdsClient,
customer
id: str,
adgroupid: str,
adassets: DisplayAdAsset,
marketing
imageassetid: str
):
adgroupadservice = client.getservice(“AdGroupAdService”)
adgroupadoperation = client.gettype(“AdGroupAdOperation”)

ad_group_ad = ad_group_ad_operation.create
ad_group_ad.ad_group = client.get_service("AdGroupService").ad_group_path(customer_id, ad_group_id)
ad_group_ad.status = client.enums.AdGroupAdStatusEnum.PAUSED

# Configuração do anúncio responsivo de display
responsive_ad = ad_group_ad.ad.responsive_display_ad
responsive_ad.headlines.append({"text": ad_assets.short_headline})
responsive_ad.long_headline.text = ad_assets.long_headline
responsive_ad.descriptions.append({"text": ad_assets.description})
responsive_ad.business_name = ad_assets.business_name

# Imagem principal (previamente enviada como Asset)
image_asset = client.get_type("AdImageAsset")
image_asset.asset = client.get_service("AssetService").asset_path(customer_id, marketing_image_asset_id)
responsive_ad.marketing_images.append(image_asset)

response = ad_group_ad_service.mutate_ad_group_ads(
    customer_id=customer_id,
    operations=[ad_group_ad_operation]
)
return response.results[0].resource_name

Fluxo Operacional para Escala

  1. Ingestão de Dados: Leitura de catálogo de produtos (CSV, banco de dados ou API de e-commerce).
  2. Execução Paralela com Claude: Uso de asyncio e anthropic.AsyncAnthropic para gerar cópias de 50+ produtos simultaneamente.
  3. Auditoria e Logs: Armazenamento das respostas estruturadas para auditoria antes ou durante a submissão.
  4. Publicação via API: Criação das campanhas em status PAUSED, permitindo validação final antes da veiculação.

Próximos Passos

A automação de Google Display Ads com IA não elimina o estrategista de marketing, mas remove o trabalho mecânico e escala a produção de testes A/B exponencialmente.

Se sua operação precisa de arquiteturas personalizadas de automação com Python, integração com Claude e APIs de publicidade, entre em contato para uma consultoria técnica especializada.

Preencha o formulário abaixo para que eu consiga entrar em contato com você.