{"version":"1.0.0","viewability":{"standard":"MRC / IAB","displayMinRatio":0.5,"displayMinContinuousMs":1000,"videoMinContinuousMs":2000,"measuredBy":"IntersectionObserver + occlusion probe + document visibility","serverCrossCheck":"wall-clock elapsed time on the server must cover the claimed visible time"},"ordering":["serve","creative_fetch","impression","viewable","click"],"tokens":{"algorithm":"HMAC-SHA256, per-purpose derived keys","singleUse":true,"serveTtlMs":900000,"impressionTtlMs":600000,"viewableTtlMs":1800000,"clickTtlMs":1800000,"boundTo":["network prefix digest","user agent digest","page origin","measurement session","stage"]},"renderProof":{"required":true,"method":"per-serve keyed pixel watermark read back from a canvas rasterisation","maxCreativeFetches":3},"timing":{"minServeToImpressionMs":40,"minImpressionToClickMs":500,"maxClockSkewMs":120000},"rateLimits":{"servePerIp":[180,60],"servePerSession":[60,60],"beaconPerIp":[360,60],"beaconPerSession":[120,60],"clickPerSession":[10,3600]},"sanityCaps":{"minSample":25,"maxCtr":0.08,"maxViewableRate":0.97},"risk":{"model":"heuristic-v1","featureVersion":1,"featureNames":["stage_ordinal","header_count","proxy_depth","has_via","missing_accept_language","missing_sec_fetch","origin_absent","webdriver","automation_hint_count","plugin_count","hardware_concurrency","device_memory","max_touch_points","device_pixel_ratio","screen_area","viewport_area","viewport_over_screen_ratio","language_count","user_gestures","top_level","ancestor_depth","since_navigation_ms","clock_skew_ms","serve_to_impression_ms","impression_to_viewable_ms","impression_to_click_ms","render_decode_ms","creative_fetch_trusted","render_occluded","view_continuous_ms","view_max_ratio","view_timeline_len","view_timeline_distinct_ratios","view_focused","click_is_trusted","click_pre_moves","click_path_length","click_max_speed","click_dwell_ms","placement_ctr","placement_view_rate","session_impressions"],"flagScore":45,"denyScore":80},"privacy":{"lawBasis":"LGPD — legitimate interest, data minimisation","storesRawIp":false,"storesRawUserAgent":false,"identifiers":"opaque random session id, expires with the serve window","retention":"measurement state expires in Redis; audit trail retained 7 days"},"rejectionVocabulary":{"invalid_json":"Corpo da requisição não é JSON válido.","invalid_payload":"Campos obrigatórios ausentes ou fora do formato esperado.","unknown_placement":"Placement desconhecido.","format_unsupported":"Formato não suportado por esta versão da tag.","brand_safety_blocked":"Contexto reprovado pela política de brand safety.","domain_not_authorized":"Domínio não autorizado a veicular este placement.","page_origin_mismatch":"A URL da página não confere com a origem da requisição.","rate_limited":"Limite de requisições excedido para esta origem.","risk_denied":"Requisição classificada como tráfego inválido.","malformed_token":"Token ausente ou malformado.","bad_signature":"Assinatura do token inválida.","expired":"Token expirado (TTL vencido).","not_yet_valid":"Token emitido no futuro.","wrong_stage":"Token usado em um estágio diferente do autorizado.","binding_mismatch":"Token apresentado em um ambiente diferente do que o gerou.","replayed":"Token já utilizado (replay bloqueado).","unknown_serve":"Serve inexistente ou expirado.","session_mismatch":"Sessão de medição não confere com a do serve.","creative_never_fetched":"Impressão sem carregamento do criativo.","creative_overfetched":"Criativo requisitado mais vezes do que o permitido.","render_proof_missing":"Prova de renderização ausente.","render_proof_mismatch":"Prova de renderização não confere com o criativo entregue.","geometry_mismatch":"Geometria reportada incompatível com o criativo entregue.","out_of_order":"Evento fora da ordem obrigatória (impressão → viewable → clique).","duplicate_stage":"Estágio já contabilizado para este serve.","mrc_not_met":"Critério MRC de viewability não atendido.","impossible_timing":"Tempos reportados são fisicamente impossíveis.","untrusted_click":"Clique não originado de interação real do usuário.","state_unavailable":"Serviço de estado indisponível; a tag falha fechada.","server_misconfigured":"Tag não configurada corretamente no servidor."}}