Execução
Fase 4: Execução20 min

#16Criar 56 Ads via API

Criar automaticamente 56 anúncios distribuídos nos 13 adsets, usando os 15 melhores criativos, tudo em modo PAUSADO.

PAUSED e rate limiting

Todos os 56 ads são criados com status PAUSED. O script usa time.sleep(1) entre cada chamada para evitar rate limiting (Erro #9).

Criar ads automaticamente

13_criar_ads.py
python
import requests
import time
import json

# 15 top criativos identificados no script 01
TOP_CRIATIVOS = [
    {"name": "Video Depoimento Ana", "object_story_id": "123_456"},
    {"name": "Carrossel Resultados", "object_story_id": "123_789"},
    # ... 13 mais
]

def criar_ad(adset_id, criativo, token):
    url = f"https://graph.facebook.com/v21.0/act_{ACCOUNT_ID}/ads"
    payload = {
        "name": f"WIA9-{adset_key} | {criativo['name']}",
        "adset_id": adset_id,
        "status": "PAUSED",
        "creative": {"object_story_id": criativo["object_story_id"]},
        "access_token": token,
    }
    response = requests.post(url, json=payload)
    time.sleep(1)  # Evitar rate limit!
    return response.json()

# Loop: para cada adset, criar ads com os criativos relevantes
for adset in adsets:
    for criativo in adset["criativos"]:
        resultado = criar_ad(adset["id"], criativo, TOKEN)
        log.append(resultado)

Naming convention

python
# Padrão de nomenclatura dos ads:
# WIA9-{ADSET_KEY} | {CREATIVE_NAME}
#
# Exemplos:
# WIA9-ELITE-ENGAJ-IG | Video Depoimento Ana
# WIA9-GOOD-VV-30D | Carrossel Resultados
# WIA9-COLD-INTEREST-MKTDIGITAL | Reels Transformação

# Distribuição:
# ~4 criativos por adset
# 13 adsets × ~4 criativos = ~56 ads
# Todos PAUSED para revisão manual

Resultados esperados

Ao final: