- Campaigns: Status='Activa' filter (was Activa=TRUE), CPAMax (was CPAMaximo), add MargenObjetivo and CursoID Text per campaign - Leads: filter by attr_cursoid + creado (was GoogleCampaignID + Fecha) - analyzer: expose margen_objetivo and margen_ok per campaign - config: remove global MARGEN_MINIMO, now per-campaign via Airtable - sync: new campaigns created with Status='Pausada' https://claude.ai/code/session_01WEcdWPxGWZKk8FGwBRLGR2
24 lines
730 B
Python
24 lines
730 B
Python
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# Airtable
|
|
AIRTABLE_TOKEN = os.environ["AIRTABLE_TOKEN"]
|
|
AIRTABLE_BASE_ID = os.environ["AIRTABLE_BASE_ID"]
|
|
LEADS_TABLE = "Leads Lake"
|
|
CAMPAIGNS_TABLE = "Google Ads Campaigns"
|
|
|
|
# Google Ads
|
|
GOOGLE_ADS_DEVELOPER_TOKEN = os.environ["GOOGLE_ADS_DEVELOPER_TOKEN"]
|
|
GOOGLE_ADS_CLIENT_ID = os.environ["GOOGLE_ADS_CLIENT_ID"]
|
|
GOOGLE_ADS_CLIENT_SECRET = os.environ["GOOGLE_ADS_CLIENT_SECRET"]
|
|
GOOGLE_ADS_REFRESH_TOKEN = os.environ["GOOGLE_ADS_REFRESH_TOKEN"]
|
|
GOOGLE_ADS_LOGIN_CUSTOMER_ID = os.environ["GOOGLE_ADS_LOGIN_CUSTOMER_ID"]
|
|
|
|
# Anthropic
|
|
ANTHROPIC_API_KEY = os.environ["ANTHROPIC_API_KEY"]
|
|
|
|
# Operación
|
|
DRY_RUN = True # True = solo sugiere, no aplica cambios en Google Ads
|