{
  "generatedAt": "2026-04-05T10:56:02.419Z",
  "client": {
    "id": "CLI_021",
    "name": "Laine Ceccon Corretora",
    "plan": "ads",
    "metaAccountName": "lainececconcorretora",
    "hasAdAccount": true,
    "readiness": "ativo",
    "readinessLabel": "Ativo",
    "readinessRank": 3,
    "hasFreshSignal": false,
    "hasPerformanceSnapshot": false,
    "observabilityLabel": "Sem sinal recente",
    "signalAgeDays": null,
    "visibleLeads": 0,
    "leadSourceLabel": "sem leads visíveis",
    "recommendedAction": "Revisar coleta e atividade recente antes de analisar performance.",
    "metaConnection": {
      "adAccountId": "152864581444491",
      "instagramAccountId": "",
      "visibleAdAccount": {
        "id": "act_152864581444491",
        "name": "lainececconcorretora",
        "accountStatus": "active",
        "clientId": "CLI_021",
        "clientName": "Laine Ceccon Corretora",
        "mapped": true
      },
      "visiblePage": {
        "id": "102053052771972",
        "name": "Laine Ceccon Corretora de imóveis",
        "followers": 410,
        "clientId": "CLI_021",
        "clientName": "Laine Ceccon Corretora",
        "mapped": true
      },
      "tokenConfigured": true,
      "hasPerformanceSnapshot": false,
      "hasFreshSignal": false,
      "statuses": [
        {
          "label": "Conta de anúncios",
          "tone": "healthy",
          "detail": "lainececconcorretora (act_152864581444491)",
          "action": "ok"
        },
        {
          "label": "Token Meta",
          "tone": "healthy",
          "detail": "válido",
          "action": "ok"
        },
        {
          "label": "Leads reais",
          "tone": "healthy",
          "detail": "sem sincronização ativa",
          "action": "sincronizar leads por cron"
        },
        {
          "label": "Página Facebook",
          "tone": "healthy",
          "detail": "Laine Ceccon Corretora de imóveis · 410 seguidores",
          "action": "ok"
        },
        {
          "label": "Leitura de campanhas",
          "tone": "configured",
          "detail": "sem leitura consolidada ainda",
          "action": "aguardar ads_read"
        },
        {
          "label": "Ações de ads",
          "tone": "watch",
          "detail": "pausado por segurança",
          "action": "pause/budget com guardrail"
        },
        {
          "label": "Instagram business",
          "tone": "configured",
          "detail": "não vinculado",
          "action": "preencher instagram_account_id"
        }
      ],
      "blockers": [
        "ads_read ainda não aprovado para analytics completo",
        "instagram_basic ainda não aprovado",
        "PAUSA_META_ADS=true no ambiente"
      ],
      "readyActions": [
        "Sincronizar leads reais por cron",
        "Mapear páginas e seguidores básicos"
      ],
      "analyticsReadiness": {
        "score": 4,
        "total": 5,
        "status": "watch",
        "currentData": [
          "Token Meta válido",
          "Conta de anúncios visível",
          "Página Facebook visível",
          "Lead retrieval pronto"
        ],
        "waitingFor": [
          "ads_read para spend, CTR, CPL, idade, região e placement"
        ],
        "nextUnlocks": [
          "Comparativo 7d vs 30d de spend",
          "CPL e CTR reais no Traffic",
          "Breakdowns por idade, região e placement no Client 360"
        ]
      },
      "pendingPermissions": [
        "ads_read",
        "instagram_basic",
        "instagram_manage_insights",
        "instagram_content_publish",
        "pages_read_user_content",
        "pages_manage_posts",
        "whatsapp_business_management"
      ]
    },
    "optimization": {
      "status": "configured",
      "headline": "Sem dados suficientes para otimizar",
      "summary": "Antes de mexer em campanha, precisamos ter sinal recente ou snapshot persistido.",
      "primaryAction": "Revisar coleta, atividade e permissões da conta.",
      "signals": [],
      "actions": [
        "Validar coleta",
        "Checar webhook e sinais",
        "Só depois revisar campanha"
      ],
      "thresholds": {
        "ctrFloor": 0.9,
        "ctrHealthy": 1.4,
        "cplWatch": 35,
        "cplCritical": 55,
        "spendWithoutLeads": 150,
        "lowLeadVolume": 3
      }
    },
    "performanceSnapshot": null,
    "performanceHistory": [],
    "adsJobStats": {
      "total": 0,
      "open": 0,
      "waiting_approval": 0,
      "done": 0,
      "failed": 0
    },
    "recentAdsJobs": [],
    "lastTrafficAt": null
  },
  "registry": {
    "id": "CLI_021",
    "nome": "Laine Ceccon Corretora",
    "plano": "ads",
    "status": "validar",
    "meta_ad_account_id": "152864581444491",
    "meta_account_name": "lainececconcorretora",
    "bm_owner_name": "Laine Ceccon | Corretora de imoveis"
  },
  "metaAppAccess": {
    "tokenConfigured": true,
    "tokenValid": true,
    "adsPaused": true,
    "approvedCount": 4,
    "pendingCount": 7,
    "generatedAt": "2026-04-04T16:52:17.751Z",
    "me": {
      "id": "122132555816992592",
      "name": "Imobi AI"
    },
    "pages": [
      {
        "id": "1063717273483144",
        "name": "Paganini Corretor",
        "followers": 0,
        "clientId": "CLI_018",
        "clientName": "Paganini Corretor",
        "mapped": true
      },
      {
        "id": "1001455656387468",
        "name": "Juliano Corretor",
        "followers": 0,
        "clientId": "CLI_007",
        "clientName": "Juliano Corretor",
        "mapped": true
      },
      {
        "id": "805256989331396",
        "name": "Alto imóveis - Itabira",
        "followers": 51,
        "clientId": "CLI_017",
        "clientName": "Alto Imoveis",
        "mapped": true
      },
      {
        "id": "716460851553148",
        "name": "Mirantte Collection ",
        "followers": 44,
        "clientId": "CLI_001",
        "clientName": "Mirantte Collection",
        "mapped": true
      },
      {
        "id": "110105222084479",
        "name": "DOCE LAR",
        "followers": 56,
        "clientId": "CLI_020",
        "clientName": "Doce Lar",
        "mapped": true
      },
      {
        "id": "102053052771972",
        "name": "Laine Ceccon Corretora de imóveis",
        "followers": 410,
        "clientId": "CLI_021",
        "clientName": "Laine Ceccon Corretora",
        "mapped": true
      },
      {
        "id": "699156290476331",
        "name": "Diretoria Lupetti",
        "followers": 1143,
        "clientId": "CLI_019",
        "clientName": "Lupetti",
        "mapped": true
      },
      {
        "id": "114051977124236",
        "name": "Imóveis Alem de Oferta",
        "followers": 191,
        "clientId": "",
        "clientName": "",
        "mapped": false
      }
    ],
    "adAccounts": [
      {
        "id": "act_152864581444491",
        "name": "lainececconcorretora",
        "accountStatus": "active",
        "clientId": "CLI_021",
        "clientName": "Laine Ceccon Corretora",
        "mapped": true
      },
      {
        "id": "act_113704272359974",
        "name": "Lupetti",
        "accountStatus": "active",
        "clientId": "CLI_019",
        "clientName": "Lupetti",
        "mapped": true
      },
      {
        "id": "act_1415347810188490",
        "name": "CA - Mirantte Collection",
        "accountStatus": "active",
        "clientId": "CLI_001",
        "clientName": "Mirantte Collection",
        "mapped": true
      },
      {
        "id": "act_807870540021407",
        "name": "Fpmedia",
        "accountStatus": "active",
        "clientId": "",
        "clientName": "",
        "mapped": false
      },
      {
        "id": "act_831874424409022",
        "name": "Alto Imóveis",
        "accountStatus": "active",
        "clientId": "CLI_017",
        "clientName": "Alto Imoveis",
        "mapped": true
      },
      {
        "id": "act_1235479758173689",
        "name": "Doce Lar",
        "accountStatus": "active",
        "clientId": "CLI_020",
        "clientName": "Doce Lar",
        "mapped": true
      },
      {
        "id": "act_2830824270446836",
        "name": "Auxiliadora Franquias Ltda.",
        "accountStatus": "active",
        "clientId": "CLI_009",
        "clientName": "Auxiliadora Imoveis",
        "mapped": true
      },
      {
        "id": "act_1468740004210415",
        "name": "CA Novo Lar Personnalité",
        "accountStatus": "active",
        "clientId": "CLI_010",
        "clientName": "Novo Lar Personnalite",
        "mapped": true
      },
      {
        "id": "act_752268624415959",
        "name": "CA - Paganini Corretor",
        "accountStatus": "active",
        "clientId": "CLI_018",
        "clientName": "Paganini Corretor",
        "mapped": true
      },
      {
        "id": "act_869204999480675",
        "name": "CA - Aparecida Gomes Remax",
        "accountStatus": "active",
        "clientId": "",
        "clientName": "",
        "mapped": false
      },
      {
        "id": "act_2096848594435654",
        "name": "Carlos e Sol - CA ",
        "accountStatus": "active",
        "clientId": "CLI_011",
        "clientName": "Sol Oliveira / Carlos e Sol - Century 21",
        "mapped": true
      },
      {
        "id": "act_1923396701593814",
        "name": "CA - Juliano Corretor",
        "accountStatus": "active",
        "clientId": "CLI_007",
        "clientName": "Juliano Corretor",
        "mapped": true
      }
    ],
    "errors": [],
    "summary": {
      "pageCount": 8,
      "adAccountCount": 12,
      "blockedAccounts": 0,
      "mappedAccounts": 10,
      "unmappedAccounts": 2,
      "mappedPages": 7,
      "unmappedPages": 1
    },
    "permissions": [
      {
        "key": "pages_show_list",
        "status": "approved",
        "label": "Pages list",
        "feature": "Mapear páginas disponíveis",
        "tone": "healthy"
      },
      {
        "key": "pages_read_engagement",
        "status": "approved",
        "label": "Pages engagement",
        "feature": "Ler fan count e sinais básicos da página",
        "tone": "healthy"
      },
      {
        "key": "leads_retrieval",
        "status": "approved",
        "label": "Lead retrieval",
        "feature": "Sincronizar leads reais de formulários",
        "tone": "healthy"
      },
      {
        "key": "ads_management",
        "status": "approved",
        "label": "Ads management",
        "feature": "Executar pause e ajuste controlado de budget",
        "tone": "healthy"
      },
      {
        "key": "ads_read",
        "status": "pending",
        "label": "Ads insights",
        "feature": "Ler spend, CTR, CPL, idade, região e placement",
        "tone": "configured"
      },
      {
        "key": "instagram_basic",
        "status": "pending",
        "label": "Instagram basic",
        "feature": "Identificar conta e perfil Instagram",
        "tone": "configured"
      },
      {
        "key": "instagram_manage_insights",
        "status": "pending",
        "label": "Instagram insights",
        "feature": "Ler métricas de Instagram",
        "tone": "configured"
      },
      {
        "key": "instagram_content_publish",
        "status": "pending",
        "label": "Instagram publish",
        "feature": "Publicar no Instagram direto pelo app",
        "tone": "configured"
      },
      {
        "key": "pages_read_user_content",
        "status": "pending",
        "label": "Page content read",
        "feature": "Ler posts e comentários da página",
        "tone": "configured"
      },
      {
        "key": "pages_manage_posts",
        "status": "pending",
        "label": "Page publish",
        "feature": "Publicar posts em página pelo app",
        "tone": "configured"
      },
      {
        "key": "whatsapp_business_management",
        "status": "pending",
        "label": "WABA management",
        "feature": "Gerenciar ativos oficiais do WhatsApp",
        "tone": "configured"
      }
    ],
    "activeFeatures": [
      "Mapear páginas disponíveis",
      "Ler fan count e sinais básicos da página",
      "Sincronizar leads reais de formulários",
      "Executar pause e ajuste controlado de budget"
    ],
    "blockedFeatures": [
      "Ler spend, CTR, CPL, idade, região e placement",
      "Identificar conta e perfil Instagram",
      "Ler métricas de Instagram",
      "Publicar no Instagram direto pelo app",
      "Ler posts e comentários da página",
      "Publicar posts em página pelo app",
      "Gerenciar ativos oficiais do WhatsApp"
    ]
  },
  "recentAdsJobs": [],
  "performanceHistory": []
}