O Zenovay pode enviar seus agregados diários de analytics para seu próprio bucket AWS S3 em um agendamento. Você traz seu próprio bucket e credenciais IAM; o Zenovay assina as requisições PUT com AWS SigV4. Os dados são seus, na sua conta, com sua política de retenção — o Zenovay apenas escreve neles.
O que é exportado
A V1 exporta agregados de analytics_daily: uma linha por website por data com os mesmos números que você vê no seu painel.
| Coluna | Descrição |
|---|---|
website_id | UUID do website ao qual a linha pertence |
date | A data que a linha agrega (UTC) |
total_visitors | Total de visitantes naquele dia |
unique_visitors | Visitantes únicos naquele dia |
pageviews | Visualizações de página naquele dia |
bounce_rate | Taxa de rejeição (0–1) |
avg_session_duration | Duração média da sessão em segundos |
Expansão futura (BigQuery, Snowflake e conjuntos de dados mais ricos como eventos personalizados) está no roadmap. Este artigo cobre apenas o S3.
O que você vai precisar
- Uma conta AWS
- Um bucket S3 (qualquer região)
- Um usuário IAM (ou role) com
s3:PutObjectno prefixo que você configurará — nenhuma outra permissão é necessária - Access key ID + secret access key para esse usuário IAM
- Um time Zenovay no plano Scale ou acima
Passo 1 — Criar a política IAM
No console IAM da AWS, crie uma política com este conjunto mínimo de permissões. Substitua your-bucket e zenovay/ pelo bucket e prefixo que você usará.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ZenovayWarehouseExportPut",
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::your-bucket/zenovay/*"
}
]
}
O Zenovay nunca lista, lê ou exclui objetos no seu bucket. A política concede apenas PutObject em um único prefixo.
Passo 2 — Criar um usuário IAM
Vincule a política do Passo 1 a um novo usuário IAM. Gere uma access key para o usuário e copie o access key ID + secret access key — você os colará no Zenovay no Passo 4.
Passo 3 — (Opcional) Política de ciclo de vida no seu bucket
Cada execução agendada escreve em:
s3://your-bucket/<prefix><team_id>/<date>/analytics_daily.csv
A chave do objeto é idempotente — uma nova execução para a mesma data sobrescreve a mesma chave. Você pode configurar uma política de ciclo de vida S3 para:
- Mover objetos mais antigos para S3 Glacier ou Glacier Deep Archive para armazenamento de longo prazo mais barato
- Expirar objetos após N dias/anos se você não precisar de retenção de longo prazo
Isso está totalmente sob seu controle; o Zenovay não gerencia o ciclo de vida no seu bucket.
Passo 4 — Conectar o destino no Zenovay
- Acesse as Settings do seu website → seção Data → aba Warehouse
- Clique em Add S3 destination
- Preencha o formulário:
| Campo | Valor |
|---|---|
| Bucket name | your-bucket |
| AWS region | A região onde está seu bucket (ex: eu-central-1) |
| Access key ID | Do Passo 2 |
| Secret access key | Do Passo 2 |
| Object key prefix | zenovay/ (ou qualquer prefixo; deve corresponder à sua política IAM) |
| Schedule | Diário ou por hora |
O Zenovay criptografa sua secret access key em repouso com AES-GCM e nunca a retorna em respostas da API.
Passo 5 — Testar o destino
Após salvar, clique em Run now na linha do destino. O Zenovay irá:
- Ler as linhas
analytics_dailydo dia mais recente dos seus dados - Formatar como CSV
- Fazer PUT em
s3://your-bucket/<prefix><team_id>/<yesterday>/analytics_daily.csv
O resultado aparece em segundos. Se falhar, a mensagem de erro informa o que a AWS rejeitou — geralmente um erro de digitação no nome do bucket, incompatibilidade de região ou permissão IAM ausente.
Cadência do agendamento
- Diário: executa uma vez a cada 24 horas por destino
- Por hora: executa a cada hora no minuto 0
O cron horário do Zenovay processa até 200 destinos por ciclo; se o seu time tiver muitos destinos, as execuções podem ser escalonadas por alguns minutos.
Pausar, retomar, excluir
- Pausar interrompe as execuções agendadas sem perder a configuração. O "Run now" manual ainda funciona.
- Retomar reativa as execuções agendadas com o mesmo relógio
next_run_at. - Excluir remove a configuração do destino E seu histórico de execuções. Os arquivos existentes no seu bucket S3 não são afetados — eles permanecem sob seu controle.
Privacidade e exclusão de conta
- Apenas agregados; nenhum IP individual de visitante ou PII sai do Zenovay
- Credenciais armazenadas criptografadas em repouso com AES-GCM
- A exclusão da sua conta Zenovay apaga as credenciais criptografadas e a configuração do destino como parte da cascata padrão de direito ao esquecimento
Perguntas frequentes
Posso usar um armazenamento compatível com S3 não-AWS como MinIO, R2 ou Wasabi? Sim. Expanda Advanced (S3-compatible endpoints) no formulário de destino e cole a URL do endpoint S3 do seu provedor (por exemplo https://abc123.r2.cloudflarestorage.com). Para Cloudflare R2 e outros destinos não-AWS, selecione a região Auto (Cloudflare R2 / S3-compatible). O endpoint deve estar acessível publicamente — para testar contra uma instância MinIO local, exponha-a através de um túnel (cloudflared ou ngrok) e use a URL pública.
E o BigQuery e Snowflake? Virão em uma versão futura. O mesmo agendamento, restrições por plano e armazenamento de credenciais serão aplicados; apenas o conector diferirá.
Posso exportar para meu próprio bucket em uma conta AWS diferente? Sim — esse é o modelo suportado. Seu usuário IAM, seu bucket, sua conta. O Zenovay apenas assina o PUT.
Como faço o download dos dados depois que estiverem no S3? Com ferramentas padrão da AWS — aws s3 cp, o console AWS ou qualquer cliente S3. A partir daí eles são seus: consulte com Athena, carregue no Glue/Redshift/BigQuery ou alimente seus próprios pipelines.
Qual região devo escolher para o bucket? Onde suas ferramentas downstream vivem. O Zenovay não cobra taxas de saída de dados — essas ficam entre você e a AWS. Clientes da UE geralmente escolhem eu-central-1 por razões de residência de dados.