meta-optimizer/.env.example
José Manuel Gómez 8fb0b69896 Add Baserow persistence, Slack interactive reports, Streamlit dashboard, and full analysis pipeline
- Migrate from Airtable to Baserow: BaserowClient with snapshots, actions, creatives, logs
- Claude agents (Haiku for decisions/units, Sonnet for creatives) with cost_cap_eur vs CPL comparison
- Slack bot with colored action emojis, effect text before approval buttons, 500-char justifications
- Streamlit dashboard with date-range navigation, campaign drill-down (adsets/ads), Histórico tab
- Approval server (FastAPI + ngrok) for Slack button callbacks
- backfill.py for historical snapshot regeneration with Claude re-analysis
- Margin fix: 0-lead campaigns contribute -spend (not 0) to margin
- CTR fix: Meta returns CTR as percentage already, removed *100
- Parameter fix: pass decision parameter to Slack action for correct budget effect display

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 09:30:13 +02:00

28 lines
704 B
Plaintext

# Meta Ads
META_APP_ID=your_app_id
META_APP_SECRET=your_app_secret
META_ACCESS_TOKEN=your_long_lived_access_token
META_AD_ACCOUNT_ID=act_XXXXXXXXXX
# Anthropic
ANTHROPIC_API_KEY=your_anthropic_key
# Baserow (self-hosted)
BASEROW_URL=https://baserow.yourdomain.com
BASEROW_TOKEN=your_baserow_api_token
# Run setup_baserow.py once to get the IDs below:
BASEROW_TABLE_CAMPAIGNS=0
BASEROW_TABLE_ACTIONS=0
BASEROW_TABLE_CREATIVES=0
BASEROW_TABLE_LOGS=0
BASEROW_TABLE_VERTICALS=0
BASEROW_TABLE_SNAPSHOTS=0
# Slack App
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your_signing_secret
SLACK_CHANNEL_ID=C0XXXXXXXXX
# Operation (set to false in production to actually execute actions)
DRY_RUN=true