Capacidades
- Traz ao Data Catalog a hierarquia da conta: a conta de anúncios, as campanhas, os grupos de anúncios e os anúncios, com status, orçamento, lances e criativo.
- Traz, por anúncio e por dia, o gasto, as impressões, os cliques, o CTR, o CPC e o CPM.
- Traz, por anúncio e por dia, as conversões (total, por clique e por visualização) e as vendas atribuídas.
- Junta entrega e conversões no modelo clean
openai_ads_ad_performance_daily, com os nomes de campanha, grupo e anúncio e as métricas derivadascpaeroas. - Guarda o histórico diário além dos 365 dias que o OpenAI Ads retém: os dias já lidos nunca são apagados por uma nova carga.
- Alimenta o Memory com os nós
AdAccount,Campaign,AdGroupeAd, ligados na mesma hierarquia, e com o desempenho diário como linha do tempo de cadaAd. O nóCampaigné o mesmo rótulo das campanhas do Mailchimp, sem fusão entre os dois conectores. Os nós só entram no grafo depois que a ontologia unificada é aplicada.
Recursos disponíveis
Todo recurso nasce desligado no Data Catalog. Você escolhe quais carregar depois de conectar.ad_insights_daily e ad_conversions_daily são sempre incrementais. O Data Catalog mostra “Incremental” desabilitado para os dois, porque o OpenAI Ads guarda só os últimos 365 dias e uma carga completa apagaria o histórico mais antigo.
O modelo clean
openai_ads_ad_performance_daily lê os seis recursos: os dois fatos e as quatro tabelas da hierarquia. Selecione os seis no Data Catalog para que ele seja construído com os nomes e a moeda preenchidos.Como ler as métricas
dateé o dia do calendário no fuso da conta (timezonedead_account), o mesmo corte do Ads Manager. A data não é convertida para UTC.- Valores monetários estão na moeda da conta (
currency_code), sem conversão. Os insights já vêm em unidade cheia. Orçamentos e lances, que a API envia em micros, saem na clean em unidade cheia (daily_budget,lifetime_budget,max_bid). - As conversões seguem a atribuição padrão da API: até 30 dias depois do clique e 1 dia depois da visualização. Por isso pode haver conversão num dia sem gasto. No modelo de desempenho, essa linha aparece com
spendvazio. cpaéspenddividido porconversions, eroasé a venda atribuída dividida porspend. Com divisor zero, o valor fica vazio.- Uma conta sem rastreio de conversão configurado deixa
ad_conversions_dailyvazia.
Permissões (ACL)
Esta fonte não define permissões por registro, então todo mundo que puder usar o conector vê todos os registros. Quem pode usar o conector é definido em Quem pode usar este conector: “Todos os usuários” ou “Apenas times específicos”. O Comportamento dos dados deste conector é sempre “Aberto”.Como a fonte define acesso
A API do OpenAI Ads não expõe usuários, papéis nem membros da conta de anúncios. A chave enxerga a conta inteira.Como a Strattum traduz o acesso
A Strattum não grava permissão por item. Todas as linhas ficam visíveis para quem pode usar o conector. O conector não oferece Exigir login na fonte como prova de identidade.Quando a identidade não é encontrada
Não se aplica: nenhuma linha depende da identidade de quem consulta.Quando a permissão é atualizada
Não há permissão da fonte para atualizar. O acesso depende só de Quem pode usar este conector.Pré-requisitos
- Uma conta de anúncios ativa no OpenAI Ads.
- Acesso à página Settings do Ads Manager, onde a API key é criada. A documentação do OpenAI Ads não informa qual papel na conta é exigido para criar a chave.
- Uma só conexão OpenAI Ads por instalação da Strattum, que cobre uma conta de anúncios.
Autenticação e escopos
A autenticação usa uma API key enviada no cabeçalhoAuthorization como Bearer. Cada chave vale para uma única conta de anúncios. A chave não tem escopos por recurso: ela lê tudo o que o conector usa.
1
Abra as configurações
No Ads Manager do OpenAI Ads, abra Settings.
2
Crie a chave
Crie uma API key para a conta de anúncios que você quer conectar.
3
Copie a chave
Copie o valor e guarde. Você o informa no Console.
Configuração no Console
1
Abra o assistente
Em Conectores, clique em + Nova Conexão e selecione OpenAI Ads.
2
Preencha a conexão
Nome do Conector (Opcional): como a conexão aparece na lista. O padrão é
OpenAI Ads.API Key (Obrigatório): a chave criada no Ads Manager.3
Teste a conexão
Clique em Testar Conexão. Você só avança depois de um teste com sucesso. A mensagem de sucesso mostra o nome da conta de anúncios encontrada.
4
Escolha a frequência
Em Sincronização (Obrigatório), escolha a frequência. A referência do conector é A cada 6h.
5
Defina o acesso
Em Permissionamento, defina Quem pode usar este conector. O Comportamento dos dados é sempre “Aberto”.
6
Revise e salve
Em Revisão, confira os dados e salve. Depois, no Data Catalog, ligue os recursos que você quer carregar. Para o modelo de desempenho diário, ligue os seis.
Como a sincronização funciona
A frequência vem do passo Sincronização. O padrão do tipo de conector é uma execução a cada 6 horas. Ordem. Cada execução testa a chave e depois lê os recursos selecionados um por um, na ordem da tabela de recursos. Recurso desligado no Data Catalog não é lido. Todas as chamadas saem uma por vez. Hierarquia em full refresh.ad_account, campaigns, ad_groups e ads são reescritos por inteiro a cada execução. O conector percorre campanhas, depois os grupos de cada campanha, depois os anúncios de cada grupo, e grava em cada linha o id do pai, que a API não devolve. Um item apagado no OpenAI Ads some da tabela na execução seguinte.
Fatos em incremental. Cada execução relê, a partir do dia da última execução menos 30 dias, até hoje, e substitui as linhas lidas pela chave anúncio e dia. A releitura existe porque gasto e impressões continuam mudando depois do dia, e uma conversão pode ser atribuída a um clique de até 30 dias antes. O cursor é o instante da execução (fetched_at), igual em todas as linhas daquela execução.
Primeira carga. Sem cursor, o conector lê os últimos 365 dias, contando o dia de hoje, que é o máximo que o OpenAI Ads guarda e aceita por consulta.
Full Refresh do Console. A ação Full Refresh apaga o cursor dos fatos e dispara uma execução. Ela relê os 365 dias e mescla o resultado com a tabela: os dias da janela são corrigidos e os dias mais antigos continuam lá. A tabela nunca é truncada.
Conversões. A API de conversões pede a lista de anúncios. Por isso, toda execução de ad_conversions_daily percorre campanhas, grupos e anúncios, mesmo que ads esteja desligado. Os anúncios vão em lotes, para que cada consulta devolva no máximo 2.000 linhas (anúncios vezes dias).
Paginação. As listagens seguem o cursor da API enquanto ela indicar que há mais páginas, com 500 itens por página na hierarquia e 2.000 nos insights. Se a API indicar mais páginas sem devolver cursor, o recurso falha em vez de gravar uma leitura incompleta.
Remoção. Na hierarquia, o full refresh reflete a remoção. Nos fatos, uma linha já gravada só é substituída por outra do mesmo anúncio e dia. Um anúncio apagado na fonte some de ads, mas os dias dele continuam em ad_insights_daily e ad_conversions_daily.
API da fonte
A consulta
POST /v1/conversions/insights só lê dados.
Rate limits. O OpenAI Ads limita a API a 600 requisições por minuto por endpoint e 1.200 por minuto no total, e a requisição precisa respeitar ao mesmo tempo o limite da conta de anúncios e o do endereço IP. A documentação não diz que resposta vem no estouro. O conector envia uma requisição por vez, com tempo limite de 60 segundos. Diante de um 429, espera o Retry-After quando ele vem (no mínimo 1 segundo), soma no máximo 900 segundos de espera por requisição e tenta de novo. Erros 5xx têm até 5 tentativas com recuo crescente. Conexão interrompida é repetida nas leituras GET, e não na consulta POST de conversões. Se o recurso ainda assim falhar, a execução tenta o recurso de novo até 3 vezes, depois de 30, 60 e 120 segundos.
Referência oficial: OpenAI Ads, visão geral da API
Limitações conhecidas
- Sem permissão por item: todo usuário que pode usar o conector vê todos os dados da conta. Para restringir, limite Quem pode usar este conector.
- Uma conexão OpenAI Ads por instalação, e portanto uma conta de anúncios. O Console recusa uma segunda conexão do mesmo tipo.
- Os valores de conversão e de vendas atribuídas foram conferidos só na forma, com uma conta sem evento de conversão. Confira os números contra o Ads Manager na primeira carga com conversões reais.
- Uma correção na fonte só é capturada enquanto o dia estiver na janela de 30 dias antes da última execução. Para corrigir dias mais antigos, use Full Refresh, que relê os últimos 365 dias.
- Dias com mais de 365 dias que ainda não foram lidos não podem ser recuperados: o OpenAI Ads não os devolve.
- Só entram dias com entrega em
ad_insights_dailye dias com conversão emad_conversions_daily. Dias zerados não geram linha. - O conector não troca a janela de atribuição: vale o padrão da API.
- Não há quebra por país, dispositivo ou hora, nem métricas por campanha ou grupo além da soma dos anúncios.
- Ficam de fora o histórico de alterações da conta, públicos, leads, pixels e eventos de conversão.
- Não há conversão de moeda.
Troubleshooting
Próximos passos
Data Catalog
Ligue os recursos do OpenAI Ads e acompanhe a carga de cada tabela.
Memory
Veja como contas, campanhas, grupos e anúncios entram no grafo.
Desenvolvimento local
Desenvolvimento local
O conector não lê variáveis do
.env. A API key é informada no Console e fica no cofre de segredos da plataforma, sob o nome OPENAI_ADS_API_KEY. Para testar localmente, crie a conexão pelo Console da stack local.