{
"error": "invalid_request",
"error_description": "Novela inexistente ou removida do catálogo"
}
{
"error": "invalid_request",
"error_description": "Novela inexistente ou removida do catálogo"
}
Analytics
Métricas agregadas de engajamento de leitura, por parceiro e período
Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade & LGPD para o racional.
Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa “por parceiro”, as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API.
ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.
GET
/
analytics
/
engagement
Métricas agregadas de engajamento de leitura, por parceiro e período
Client credentials — emitido uma única vez, de forma centralizada, pela Platform API (POST https://api.googa.com.br/v1/oauth2/token, ver aba API Platform). Este domínio (api.novelai.com.br) só valida o token — via a chave pública do projeto Supabase "Platform" — nunca emite um token próprio. Isso evita duplicar a verificação de client_id/client_secret em três projetos Supabase diferentes: o parceiro autentica uma vez, e o mesmo token (com os escopos certos) funciona em qualquer domínio de produto. Ver "Roteamento cross-projeto" em Modelo de autenticação sobre Supabase.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Googa Developers","description":"Documentação técnica das APIs da Googa — NovelAI, HistorinhAI e NovelÁudio. Integração via API, SSO, entitlements, billing, webhooks, segurança e LGPD.","colors":{"primary":"#6C63FF","light":"#8B85FF","dark":"#4A42D6"},"logo":{"light":"https://mintcdn.com/googa/57u-aPav27DBtVfv/logo/googa-developers-light.svg?fit=max\u0026auto=format\u0026n=57u-aPav27DBtVfv\u0026q=85\u0026s=e0a6a2555878f598d4b895ecab0626c0","dark":"https://mintcdn.com/googa/57u-aPav27DBtVfv/logo/googa-developers-dark.svg?fit=max\u0026auto=format\u0026n=57u-aPav27DBtVfv\u0026q=85\u0026s=e50f9a3861ec2af103639483e042c04d"},"favicon":"https://mintcdn.com/googa/57u-aPav27DBtVfv/logo/favicon.svg?fit=max\u0026auto=format\u0026n=57u-aPav27DBtVfv\u0026q=85\u0026s=d9042418fb793602eda9ca5cfab1fa4f","footer":{"socials":{"linkedin":"https://www.linkedin.com/company/googa"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"googa","hasAudioNarration":false,"actualSubdomain":"googa","customDomains":["developers.googa.com.br"],"gitSource":{"type":"github","owner":"googa-tech","repo":"googa-developers","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a875455e849cdeb6400f984","collectionId":"4d9e9a1e-c88d-4710-a739-cc3adf0090b3","liveDeploymentHistoryId":"6a875455e849cdeb6400f984","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a875455e849cdeb6400f984:success","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Referência","count":23},{"language":"default","tag":"NovelAI","count":9},{"language":"default","tag":"API Platform","count":9},{"language":"default","tag":"Segurança \u0026 LGPD","count":8},{"language":"default","tag":"NovelÁudio","count":6},{"language":"default","tag":"Guias","count":5},{"language":"default","tag":"Visão geral","count":4},{"language":"default","tag":"Arquitetura \u0026 modelo de dados","count":3},{"language":"default","tag":"HistorinhAI","count":3},{"language":"default","tag":"Privacidade \u0026 LGPD","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período","slug":"/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período","pageMetadata":{"title":"Métricas agregadas de engajamento de leitura, por parceiro e período","description":"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui `subscriber_id` em nenhum nível; ver [Privacidade \u0026 LGPD](/security/lgpd) para o racional.\n\n**Pré-requisito ainda não desenhado em outra página:** para calcular qualquer coisa \"por parceiro\", as tabelas de leitura (`reading_progress` e afins) precisam de uma coluna `partner_id` — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em [Isolamento multi-tenant](/architecture/supabase-auth-model#capacidades-nativas-do-supabase), mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do `subscriber_id` já resolvido pela Platform API.\n\n`ending_distribution` omite qualquer combinação novela/final com menos de `minimum_cohort_size` leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /analytics/engagement","href":"/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui \", _jsx(_components.code, {\n children: \"subscriber_id\"\n }), \" em nenhum nível; ver \", _jsx(_components.a, {\n href: \"/security/lgpd\",\n children: \"Privacidade \u0026 LGPD\"\n }), \" para o racional.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Pré-requisito ainda não desenhado em outra página:\"\n }), \" para calcular qualquer coisa “por parceiro”, as tabelas de leitura (\", _jsx(_components.code, {\n children: \"reading_progress\"\n }), \" e afins) precisam de uma coluna \", _jsx(_components.code, {\n children: \"partner_id\"\n }), \" — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em \", _jsx(_components.a, {\n href: \"/architecture/supabase-auth-model#capacidades-nativas-do-supabase\",\n children: \"Isolamento multi-tenant\"\n }), \", mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do \", _jsx(_components.code, {\n children: \"subscriber_id\"\n }), \" já resolvido pela Platform API.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"ending_distribution\"\n }), \" omite qualquer combinação novela/final com menos de \", _jsx(_components.code, {\n children: \"minimum_cohort_size\"\n }), \" leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Métricas agregadas de engajamento de leitura, por parceiro e período","description":"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui `subscriber_id` em nenhum nível; ver [Privacidade \u0026 LGPD](/security/lgpd) para o racional.\n\n**Pré-requisito ainda não desenhado em outra página:** para calcular qualquer coisa \"por parceiro\", as tabelas de leitura (`reading_progress` e afins) precisam de uma coluna `partner_id` — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em [Isolamento multi-tenant](/architecture/supabase-auth-model#capacidades-nativas-do-supabase), mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do `subscriber_id` já resolvido pela Platform API.\n\n`ending_distribution` omite qualquer combinação novela/final com menos de `minimum_cohort_size` leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /analytics/engagement","href":"/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getEngagementAnalytics","tags":["Analytics"],"summary":"Métricas agregadas de engajamento de leitura, por parceiro e período","description":"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui `subscriber_id` em nenhum nível; ver [Privacidade \u0026 LGPD](/security/lgpd) para o racional.\n\n**Pré-requisito ainda não desenhado em outra página:** para calcular qualquer coisa \"por parceiro\", as tabelas de leitura (`reading_progress` e afins) precisam de uma coluna `partner_id` — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em [Isolamento multi-tenant](/architecture/supabase-auth-model#capacidades-nativas-do-supabase), mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do `subscriber_id` já resolvido pela Platform API.\n\n`ending_distribution` omite qualquer combinação novela/final com menos de `minimum_cohort_size` leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.","parameters":["2a19d472-5d70-48b9-8d99-4b1766689f37","6d9ca0f9-07bf-481e-b518-91fd0fa79bbf"],"responses":{"200":"2e077abe-baae-42fa-915b-7bf29e3037d6","400":"ee692130-bece-4ad8-a7a1-f0f7998b2bf6","401":"a9eadcde-971c-44fd-92df-93c75fd3273e"},"method":"get","type":"path","servers":["f303cc12-7330-4b6c-a4ba-64967536b7aa","0cb75b40-9acf-48cd-8da4-5e07e5e19685"],"security":["70f66fb0-118f-4ca1-b98e-5457737f61ad"],"path":"/analytics/engagement","baseUrlOptions":["https://api.novelai.com.br/v1","https://sandbox.novelai.com.br/v1"],"title":"Métricas agregadas de engajamento de leitura, por parceiro e período","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2a19d472-5d70-48b9-8d99-4b1766689f37":{"name":"period_start","in":"query","required":true,"schema":{"type":"string","format":"date","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cdate>"}},"6d9ca0f9-07bf-481e-b518-91fd0fa79bbf":{"name":"period_end","in":"query","required":true,"schema":{"type":"string","format":"date","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cdate>"}}},"responses":{"2e077abe-baae-42fa-915b-7bf29e3037d6":{"description":"Relatório agregado do período.","content":{"application/json":{"schema":{"type":"object","properties":{"period_start":{"type":"string","format":"date","uniqueKey":"period_start","typeLabel":"string\u003cdate>"},"period_end":{"type":"string","format":"date","uniqueKey":"period_end","typeLabel":"string\u003cdate>"},"active_readers":{"type":"integer","description":"Assinantes distintos deste parceiro com alguma atividade de leitura no período.","uniqueKey":"active_readers","typeLabel":"integer"},"avg_chapters_read_per_active_reader":{"type":"number","format":"float","uniqueKey":"avg_chapters_read_per_active_reader","typeLabel":"number\u003cfloat>"},"completion_rate":{"type":"number","format":"float","description":"Proporção de novelas iniciadas no período que chegaram a um final escolhido.","uniqueKey":"completion_rate","typeLabel":"number\u003cfloat>"},"ending_distribution":{"type":"array","items":{"type":"object","properties":{"novel_id":{"type":"string","uniqueKey":"ending_distribution.items.[INDEX].novel_id","typeLabel":"string"},"choice_id":{"type":"string","uniqueKey":"ending_distribution.items.[INDEX].choice_id","typeLabel":"string"},"label":{"type":"string","uniqueKey":"ending_distribution.items.[INDEX].label","typeLabel":"string"},"count":{"type":"integer","uniqueKey":"ending_distribution.items.[INDEX].count","typeLabel":"integer"}},"uniqueKey":"ending_distribution.items.[INDEX]","typeLabel":"object"},"description":"Omite combinações com menos de `minimum_cohort_size` leitores.","uniqueKey":"ending_distribution","typeLabel":"object[]"},"minimum_cohort_size":{"type":"integer","example":20,"uniqueKey":"minimum_cohort_size","typeLabel":"integer"},"generated_at":{"type":"string","format":"date-time","uniqueKey":"generated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"period_start":"2023-12-25","period_end":"2023-12-25","active_readers":123,"avg_chapters_read_per_active_reader":123,"completion_rate":123,"ending_distribution":[{"novel_id":"\u003cstring>","choice_id":"\u003cstring>","label":"\u003cstring>","count":123}],"minimum_cohort_size":20,"generated_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"ee692130-bece-4ad8-a7a1-f0f7998b2bf6":{"description":"Parâmetros de requisição inválidos.","content":{"application/json":{"schema":{"type":"object","description":"Mesmo formato de erro (estilo OAuth2, RFC 6749 §5.2) usado pela Platform API.","properties":{"error":{"type":"string","example":"invalid_request","uniqueKey":"error","typeLabel":"string"},"error_description":{"type":"string","example":"Novela inexistente ou removida do catálogo","uniqueKey":"error_description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"invalid_request","error_description":"Novela inexistente ou removida do catálogo"}}},"exampleType":"generated"}},"exampleType":"generated"},"a9eadcde-971c-44fd-92df-93c75fd3273e":{"description":"Credenciais ausentes, inválidas ou expiradas.","content":{"application/json":{"schema":{"type":"object","description":"Mesmo formato de erro (estilo OAuth2, RFC 6749 §5.2) usado pela Platform API.","properties":{"error":{"type":"string","example":"invalid_request","uniqueKey":"error","typeLabel":"string"},"error_description":{"type":"string","example":"Novela inexistente ou removida do catálogo","uniqueKey":"error_description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"invalid_request","error_description":"Novela inexistente ou removida do catálogo"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"70f66fb0-118f-4ca1-b98e-5457737f61ad":{"partnerOAuth2":{"type":"oauth2","description":"Client credentials — emitido **uma única vez**, de forma centralizada, pela Platform API (`POST https://api.googa.com.br/v1/oauth2/token`, ver aba API Platform). Este domínio (`api.novelai.com.br`) só *valida* o token — via a chave pública do projeto Supabase \"Platform\" — nunca emite um token próprio. Isso evita duplicar a verificação de `client_id`/`client_secret` em três projetos Supabase diferentes: o parceiro autentica uma vez, e o mesmo token (com os escopos certos) funciona em qualquer domínio de produto. Ver \"Roteamento cross-projeto\" em [Modelo de autenticação sobre Supabase](/architecture/supabase-auth-model#partner-gateway-a-camada-que-conecta-as-duas-pontas).","flows":{"clientCredentials":{"tokenUrl":"https://api.googa.com.br/v1/oauth2/token","scopes":{"novelai:catalog:read":"Ler catálogo (novelas e categorias)","novelai:chapters:read":"Ler capítulos e estado de liberação por assinante","novelai:progress:read":"Ler progresso de leitura consolidado por assinante","novelai:choices:read":"Ler finais disponíveis por assinante","novelai:analytics:read":"Ler métricas agregadas de engajamento"}}},"scopes":[]}}},"servers":{"f303cc12-7330-4b6c-a4ba-64967536b7aa":{"url":"https://api.novelai.com.br/v1","description":"Produção (proposto)"},"0cb75b40-9acf-48cd-8da4-5e07e5e19685":{"url":"https://sandbox.novelai.com.br/v1","description":"Sandbox (proposto) — catálogo fictício, sem impacto em billing real"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"oauth2","description":"Client credentials — emitido **uma única vez**, de forma centralizada, pela Platform API (`POST https://api.googa.com.br/v1/oauth2/token`, ver aba API Platform). Este domínio (`api.novelai.com.br`) só *valida* o token — via a chave pública do projeto Supabase \"Platform\" — nunca emite um token próprio. Isso evita duplicar a verificação de `client_id`/`client_secret` em três projetos Supabase diferentes: o parceiro autentica uma vez, e o mesmo token (com os escopos certos) funciona em qualquer domínio de produto. Ver \"Roteamento cross-projeto\" em [Modelo de autenticação sobre Supabase](/architecture/supabase-auth-model#partner-gateway-a-camada-que-conecta-as-duas-pontas).","flows":{"clientCredentials":{"tokenUrl":"https://api.googa.com.br/v1/oauth2/token","scopes":{"novelai:catalog:read":"Ler catálogo (novelas e categorias)","novelai:chapters:read":"Ler capítulos e estado de liberação por assinante","novelai:progress:read":"Ler progresso de leitura consolidado por assinante","novelai:choices:read":"Ler finais disponíveis por assinante","novelai:analytics:read":"Ler métricas agregadas de engajamento"}}},"scopes":[]},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"Client credentials — emitido **uma única vez**, de forma centralizada, pela Platform API (`POST https://api.googa.com.br/v1/oauth2/token`, ver aba API Platform). Este domínio (`api.novelai.com.br`) só *valida* o token — via a chave pública do projeto Supabase \"Platform\" — nunca emite um token próprio. Isso evita duplicar a verificação de `client_id`/`client_secret` em três projetos Supabase diferentes: o parceiro autentica uma vez, e o mesmo token (com os escopos certos) funciona em qualquer domínio de produto. Ver \"Roteamento cross-projeto\" em [Modelo de autenticação sobre Supabase](/architecture/supabase-auth-model#partner-gateway-a-camada-que-conecta-as-duas-pontas).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"partnerOAuth2","name":"Authorization"}],"title":"partnerOAuth2"}]},"originalFileLocation":"novelai/openapi.yaml"},"subdomain":"googa","siteName":"Googa Developers","title":"Métricas agregadas de engajamento de leitura, por parceiro e período - Googa Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-03T21:36:40.410Z","originalFileLocation":"novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade \u0026amp; LGPD para o racional. Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa \u0026quot;por parceiro\u0026quot;, as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API. ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Googa Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Métricas agregadas de engajamento de leitura, por parceiro e período - Googa Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade \u0026amp; LGPD para o racional. Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa \u0026quot;por parceiro\u0026quot;, as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API. ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Googa Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.googa.com.br/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://googa.mintlify.app/_mintlify/api/og/v2?division=Analytics\u0026amp;title=M%C3%A9tricas+agregadas+de+engajamento+de+leitura%2C+por+parceiro+e+per%C3%ADodo\u0026amp;description=Suporte+aos+indicadores+prometidos+na+proposta+%28DAU%2FMAU+do+ritual+di%C3%A1rio%2C+take-rate%2C+reten%C3%A7%C3%A3o%29+%E2%80%94+sempre+agregado+ao+n%C3%ADvel+do+parceiro%2C+nunca+por+assinante.+Nenh\u0026amp;theme=fcf602f6cc84fd27c8bf85fd\u0026amp;signature=6aceb5d7c01394eba1458db5cb8b149875590f2762d05e35e873e118d42fb567\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Métricas agregadas de engajamento de leitura, por parceiro e período - Googa Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade \u0026amp; LGPD para o racional. Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa \u0026quot;por parceiro\u0026quot;, as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API. ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://googa.mintlify.app/_mintlify/api/og/v2?division=Analytics\u0026amp;title=M%C3%A9tricas+agregadas+de+engajamento+de+leitura%2C+por+parceiro+e+per%C3%ADodo\u0026amp;description=Suporte+aos+indicadores+prometidos+na+proposta+%28DAU%2FMAU+do+ritual+di%C3%A1rio%2C+take-rate%2C+reten%C3%A7%C3%A3o%29+%E2%80%94+sempre+agregado+ao+n%C3%ADvel+do+parceiro%2C+nunca+por+assinante.+Nenh\u0026amp;theme=fcf602f6cc84fd27c8bf85fd\u0026amp;signature=6aceb5d7c01394eba1458db5cb8b149875590f2762d05e35e873e118d42fb567\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/googa/P93VhvFgH0upO3di/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Googa Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6C63FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.googa.com.br/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.googa.com.br/#organization\",\"name\":\"Googa Developers\",\"url\":\"https://developers.googa.com.br\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/googa/57u-aPav27DBtVfv/logo/googa-developers-light.svg?fit=max\u0026auto=format\u0026n=57u-aPav27DBtVfv\u0026q=85\u0026s=e0a6a2555878f598d4b895ecab0626c0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.googa.com.br#website\",\"name\":\"Googa Developers\",\"url\":\"https://developers.googa.com.br\",\"publisher\":{\"@id\":\"https://developers.googa.com.br/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo#webpage\",\"url\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo\",\"name\":\"Métricas agregadas de engajamento de leitura, por parceiro e período\",\"description\":\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade \u0026 LGPD para o racional. Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa \\\"por parceiro\\\", as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API. ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\",\"dateModified\":\"2026-08-03T21:36:40.410Z\",\"isPartOf\":{\"@id\":\"https://developers.googa.com.br#website\"},\"breadcrumb\":{\"@id\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Referência\",\"item\":\"https://developers.googa.com.br/novelai/reference/catalog/lista-as-categoriasg%C3%AAneros-do-cat%C3%A1logo\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Métricas agregadas de engajamento de leitura, por parceiro e período\",\"item\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo#apireference\",\"headline\":\"Métricas agregadas de engajamento de leitura, por parceiro e período\",\"name\":\"Métricas agregadas de engajamento de leitura, por parceiro e período\",\"description\":\"Suporte aos indicadores prometidos na proposta (DAU/MAU do ritual diário, take-rate, retenção) — sempre agregado ao nível do parceiro, nunca por assinante. Nenhuma resposta desta rota inclui subscriber_id em nenhum nível; ver Privacidade \u0026 LGPD para o racional. Pré-requisito ainda não desenhado em outra página: para calcular qualquer coisa \\\"por parceiro\\\", as tabelas de leitura (reading_progress e afins) precisam de uma coluna partner_id — hoje elas não distinguem um leitor que entrou pelo app oficial de um que entrou via SSO de um parceiro. Isso é mencionado como necessidade genérica em Isolamento multi-tenant, mas o backfill/migração real dessa coluna não está feito nem desenhado em detalhe — este endpoint está, portanto, mais atrás no roadmap do que os demais desta especificação, que só precisam do subscriber_id já resolvido pela Platform API. ending_distribution omite qualquer combinação novela/final com menos de minimum_cohort_size leitores no período — supressão de cohort pequeno para reduzir risco de reidentificação, não um limite arbitrário de exibição.\",\"url\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo\",\"mainEntityOfPage\":{\"@id\":\"https://developers.googa.com.br/novelai/reference/analytics/m%C3%A9tricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-per%C3%ADodo#webpage\"},\"dateModified\":\"2026-08-03T21:36:40.410Z\",\"publisher\":{\"@id\":\"https://developers.googa.com.br/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.googa.com.br#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Googa Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Googa Developers","nav":{"global":null,"tabs":[{"tab":"Guias","pages":[{"title":"Guias","href":""}]},{"tab":"API Platform","pages":[{"title":"API Platform","href":"/platform/overview"}]},{"tab":"HistorinhAI","pages":[{"title":"HistorinhAI","href":"/historinhai/overview"}]},{"tab":"NovelAI","groups":[{"group":"Visão geral","pages":[{"title":"NovelAI API — visão geral","href":"/novelai/overview"}]},{"group":"Referência","pages":[{"group":"Catalog","pages":[{"title":"Lista as categorias/gêneros do catálogo","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /categories","href":"/novelai/reference/catalog/lista-as-categoriasgêneros-do-catálogo"},{"title":"Lista o catálogo de novelas","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /novels","href":"/novelai/reference/catalog/lista-o-catálogo-de-novelas"},{"title":"Detalhe de uma novela","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /novels/{id}","href":"/novelai/reference/catalog/detalhe-de-uma-novela"}]},{"group":"Chapters","pages":[{"title":"Lista os capítulos de uma novela e, opcionalmente, o estado de liberação para um assinante","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /novels/{id}/chapters","href":"/novelai/reference/chapters/lista-os-capítulos-de-uma-novela-e-opcionalmente-o-estado-de-liberação-para-um-assinante"}]},{"group":"Choices","pages":[{"title":"Finais disponíveis de uma novela para um assinante","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /novels/{id}/choices","href":"/novelai/reference/choices/finais-disponíveis-de-uma-novela-para-um-assinante"}]},{"group":"Progress","pages":[{"title":"Progresso de leitura consolidado de um assinante","description":"Uma linha por novela que o assinante já abriu — em andamento ou concluída. Nomeado no singular (`subscriber`, não `subscribers`) para seguir a mesma convenção de `GET /subscriber-status/{id}` na Platform API.\n\n`active_novel_count` nunca passa de `active_novel_limit` (hoje fixo em 3): é o limite de novelas simultâneas não finalizadas, aplicado no servidor por `enforce_reading_rules()` — o assinante precisa terminar (ou remover) uma novela em andamento antes de abrir uma quarta. Um parceiro que queira, por exemplo, avisar \"sua base já está no limite\" numa tela própria tem esse dado aqui sem precisar hardcodar o número 3.","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /subscriber/{id}/reading-progress","href":"/novelai/reference/progress/progresso-de-leitura-consolidado-de-um-assinante"}]},{"group":"Analytics","pages":[{"title":"Métricas agregadas de engajamento de leitura, por parceiro e período","deprecated":null,"version":null,"openapi":"/novelai/openapi.yaml get /analytics/engagement","href":"/novelai/reference/analytics/métricas-agregadas-de-engajamento-de-leitura-por-parceiro-e-período"}]},{"group":"API Reference","pages":[{"title":"Novelfinished","description":"Disparado quando um assinante escolhe um final e conclui uma novela (`reading_progress.finished_at` passa de nulo para preenchido) — uma escrita discreta, então mapeia bem no modelo de Database Webhooks nativo do Supabase, descrito em [Modelo de autenticação sobre Supabase](/architecture/supabase-auth-model) (seção \"Webhooks de saída\"). Assinado via HMAC-SHA256, mesmo padrão da Platform API — a verificação passo a passo está em [Eventos (webhooks de saída)](/platform/overview#eventos-webhooks-de-saída).\n\n**O que não existe (e por quê):** não há um webhook `chapter.unlocked`. O drip não é uma escrita — `unlocked_chapter_count()` é uma função calculada a cada leitura, sem nenhuma linha que muda no instante em que um capítulo libera às 06:00. Um Database Webhook não tem o que disparar nesse momento. Notificar \"seu próximo capítulo chegou\" exigiria um job agendado que recalcula o estado de cada assinante ativo e compara contra o que já foi notificado — não está desenhado; fica como questão aberta de roadmap, não como funcionalidade prometida.","version":null,"deprecated":null,"openapi":"/novelai/openapi.yaml webhook novelFinished","href":"/novelai/reference/novelfinished"}]}]}]},{"tab":"NovelÁudio","pages":[{"title":"NovelÁudio","href":"/novelaudio/overview"}]},{"tab":"Segurança \u0026 LGPD","pages":[{"title":"Segurança \u0026 LGPD","href":"/security/overview"}]}]},"title":"Métricas agregadas de engajamento de leitura, por parceiro e período - Googa Developers","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}