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:
- 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.
- 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.
- Deploy via API: O SDK oficial
google-adscria 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)
businessname: 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:
{productdescription}
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,
customerid: str,
adgroupid: str,
adassets: DisplayAdAsset,
marketingimageassetid: 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
- Ingestão de Dados: Leitura de catálogo de produtos (CSV, banco de dados ou API de e-commerce).
- Execução Paralela com Claude: Uso de
asyncioeanthropic.AsyncAnthropicpara gerar cópias de 50+ produtos simultaneamente. - Auditoria e Logs: Armazenamento das respostas estruturadas para auditoria antes ou durante a submissão.
- 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.


