Capacidades
- Lê, numa só conexão, todas as contas que a credencial lista.
- Traz ao Data Catalog o cadastro de cada conta: campanhas, grupos de anúncios, anúncios de todos os tipos que o download em massa (Bulk) devolve e palavras-chave.
- Traz, por dia, impressões, cliques, investimento (
spend), conversões e receita, em quatro cortes: conta, campanha, grupo de anúncios e palavra-chave. - Traz os usuários de cada conta com o papel deles, e usa esses papéis para decidir quem vê cada linha no modo “Espelhar a fonte”.
- Instala 10 tabelas clean prontas, uma por recurso, com status em minúsculas, horários de alteração em UTC, chaves que já incluem a conta e o dia de cada métrica no fuso da conta.
- Alimenta o Memory com os nós
Agent,AdAccount,AdCampaign,AdGroup,AdeAdKeyword, ligados na hierarquia da conta, e com cada alteração de campanha como evento de linha do tempo. OAgentpode se unir, pelo e-mail, a pessoas do HubSpot, Slack, ClickUp e Jira. Os nós só entram no grafo depois que a ontologia unificada é aplicada.
Recursos disponíveis
As cinco métricas são
impressions, clicks, spend, conversions e revenue. Taxas como CTR e CPC médio não entram, porque não se somam entre dias.
Você escolhe no Data Catalog quais recursos carregar. O accounts fica sempre ligado, porque todos os outros recursos e a permissão dependem da conta. Os usuários são lidos a cada execução para calcular a permissão, mesmo com users desligado. A tabela só é gravada quando o recurso está ligado.
Como ler os dados
dateé o dia do calendário no fuso da conta, o mesmo corte da interface do Microsoft Advertising. A data não é convertida para UTC. O fuso da conta está emaccount_time_zone, na tabela cleanbing_ads_accounts.spenderevenueficam na moeda da conta, sem conversão. Toda linha de desempenho trazcurrency_code. Para somar contas diferentes, agrupe pela moeda.conversionsé a contagem de conversões qualificadas. A coluna antiga de conversões do Microsoft Advertising está descontinuada e devolve zero.- Dia sem tráfego não gera linha.
- Na clean, as chaves
campaign_key,ad_group_key,ad_keyekeyword_keytêm a forma<account_id>:<entidade>:<id>. Oexternal_idé o id que a interface do Microsoft Advertising mostra. - Em
ads, os títulos e as descrições ficam como texto, na lista serializada que a fonte entrega, porque a quantidade varia por tipo de anúncio.
Permissões (ACL)
O conector lê a permissão de cada item na fonte e a guarda junto com o dado. Em Comportamento dos dados, você escolhe entre dois modos:
No modo “Espelhar a fonte”, a Strattum reconhece cada pessoa pelo login dela no Microsoft Advertising, o endereço com que ela entra na Microsoft ou no Google. O conector não oferece Exigir login na fonte como prova de identidade. O login só vira acesso quando a instalação da Strattum libera, para esta conexão, a associação por e-mail e cadastra os domínios corporativos aceitos. Com essa liberação, quem entra na Strattum com o mesmo endereço do login vê as contas que esse login acessa no Microsoft Advertising.
O assistente começa com “Espelhar a fonte” selecionado.
Como a fonte define acesso
No Microsoft Advertising, cada usuário tem um papel dentro de um cliente (customer). O papel vale para todas as contas do cliente ou para uma lista de contas, e uma agência pode alcançar contas de clientes vinculados. Não existe permissão por campanha, grupo ou anúncio.Como a Strattum traduz o acesso
A permissão é calculada por conta. A cada execução, o conector lê os usuários de cada cliente e o papel de cada um, e monta a lista de logins que acessam cada conta. Toda linha daquela conta, em todos os recursos, recebe essa lista.- Um papel sem lista de contas concede todas as contas do cliente. Um papel com lista concede só as contas listadas.
- As contas de clientes vinculados contam para quem tem acesso pelo vínculo.
- Um papel restrito ao vínculo (
LinkedEntityOnly, ou qualquer valor desconhecido) não concede o cliente inteiro, só as contas listadas e as vinculadas. - Só usuário com status
Activeconcede acesso. Usuário pendente, inativo ou excluído continua na tabelauserse não concede nada. - Papel que o conector não conhece aparece como
unknownemuserse não concede nada. - O conector usa o login (
user_name), nunca o e-mail de contato. O e-mail de contato é um campo livre que o próprio usuário edita.
Quando a identidade não é encontrada
Login que não é um endereço de e-mail não concede acesso: a linha fica emusers, e ninguém recebe a conta por ele. Login de um domínio fora da lista cadastrada para a conexão, como uma conta pessoal da Microsoft, não é associado a nenhum usuário da Strattum. Nos dois casos, as linhas continuam visíveis para os outros logins da conta.
Se a credencial não consegue ler os usuários de um cliente, os usuários desse cliente não concedem nada. As contas dele mantêm só o acesso lido por outra via, como o vínculo de uma agência. O teste de conexão avisa quando isso acontece.
Quando a permissão é atualizada
A permissão é recalculada em toda execução, antes de qualquer gravação. Emaccounts, users, campaigns, ad_groups, ads e keywords, ela sai junto com o dado, porque esses recursos são reescritos por inteiro.
Nos quatro recursos de desempenho, o conector compara a permissão de cada conta com a da execução anterior. Quando ela mudou, as linhas da conta são atualizadas em todas as tabelas de desempenho ligadas, inclusive dias que não foram relidos. Uma conta que a credencial deixou de alcançar fica com as linhas de desempenho sem nenhum acesso.
Entre duas execuções, vale a permissão da última. A associação entre o login e o usuário da Strattum roda à parte, depois de cada sincronização bem-sucedida e a cada 10 minutos.
Pré-requisitos
- Um usuário do Microsoft Advertising com papel Standard User ou Super Admin nas contas que você quer ler. O papel Viewer basta para os dados, mas não lê os outros usuários, e no modo “Espelhar a fonte” as contas ficam restritas a quem tem acesso por vínculo de agência.
- Um developer token de produção, gerado por um usuário Super Admin.
- Um aplicativo OAuth do provedor com que o usuário entra no Microsoft Advertising: um aplicativo do Microsoft Entra, para login Microsoft, ou um cliente OAuth do Google Cloud, para login Google.
- Uma só conexão Microsoft Advertising por instalação da Strattum. Ela lê todas as contas que a credencial alcança.
Autenticação e escopos
A autenticação é OAuth 2.0 delegado, com refresh token. A cada execução, o conector troca o refresh token por um token de acesso, no Microsoft Entra ou no Google, conforme o Provedor de login. Toda chamada à API leva o developer token.Com login Microsoft
1
Registre o aplicativo
No Microsoft Entra, registre um aplicativo com o tipo de conta Any Entra ID Tenant + Personal Microsoft accounts, plataforma web, e crie um client secret. Use um redirect URI próprio: com client secret, a Microsoft recusa o redirect
nativeclient.2
Peça o consentimento
Abra no navegador o endereço de autorização que o assistente mostra, trocando
CLIENT_ID e REDIRECT_URI. Entre com o usuário do Microsoft Advertising, aceite e copie o valor do parâmetro code do endereço de retorno.3
Gere o refresh token
Envie um POST a
https://login.microsoftonline.com/common/oauth2/v2.0/token com grant_type=authorization_code, o code, client_id, client_secret, o mesmo redirect_uri e o escopo. Guarde o refresh_token da resposta.4
Gere o developer token
No Microsoft Advertising, com um usuário Super Admin, abra Configurações e depois Configurações de desenvolvedor, e gere o developer token.
Com login Google
1
Crie o cliente OAuth
No Google Cloud Console, crie um cliente OAuth do tipo Web application e cadastre o redirect URI.
2
Peça o consentimento
Abra no navegador o endereço de autorização que o assistente mostra, com os escopos
profile e email e acesso offline. Entre com a conta Google usada no Microsoft Advertising, aceite e copie o valor do parâmetro code.3
Gere o refresh token
Envie um POST a
https://oauth2.googleapis.com/token com grant_type=authorization_code, o code, client_id, client_secret e o mesmo redirect_uri. Guarde o refresh_token da resposta.4
Gere o developer token
No Microsoft Advertising, com um usuário Super Admin, abra Configurações e depois Configurações de desenvolvedor, e gere o developer token.
Configuração no Console
1
Abra o assistente
Em Conectores, clique em + Nova Conexão e selecione Microsoft Advertising, em Mídia paga.
2
Preencha a conexão
Nome do Conector (Opcional): como a conexão aparece na lista. O padrão é
Microsoft Advertising.Provedor de login (Obrigatório): Microsoft ou Google, conforme a conta com que o usuário entra no Microsoft Advertising. O padrão é Microsoft. O texto de ajuda muda conforme a escolha.Developer token (Obrigatório): o token gerado nas configurações de desenvolvedor.Client ID (Obrigatório): o Client ID do aplicativo do Entra ou do cliente OAuth do Google.Client secret (Obrigatório): o secret do mesmo aplicativo.Refresh token (Obrigatório): o token gerado no consentimento.3
Teste a conexão
Clique em Testar Conexão. Você só avança depois de um teste com sucesso ou com aviso. O teste troca o refresh token, lista as contas, busca o cliente da primeira conta legível e lista os usuários desse cliente. Ele falha quando a credencial é recusada, quando não há conta acessível e quando a Microsoft não responde. Conecta com aviso quando a credencial só enxerga o próprio usuário, ou não consegue ler os usuários: nesse caso, a permissão fica restrita.
4
Escolha a frequência
Em Sincronização (Obrigatório), escolha uma frequência na lista ou informe um cron. Uma vez por dia basta: os relatórios são diários, e cada execução gasta um download em massa por conta e um relatório por conta e recurso.
5
Defina o acesso
Em Permissionamento, defina Quem pode usar este conector e o Comportamento dos dados. O assistente começa em “Espelhar a fonte”. Antes de mantê-lo, leia Permissões. Se a política de acesso não for salva junto com o conector, o Console avisa com “Política de acesso pendente”.
6
Revise e salve
Em Revisão, confira os dados e salve. O developer token, o client secret e o refresh token aparecem mascarados.
7
Ligue os recursos no Data Catalog
No Data Catalog, ligue os recursos e as tabelas clean que você quer carregar. Nos quatro recursos de desempenho, escolha o modo Incremental na aba Carga: o padrão é full refresh, e a cada execução ele relê 13 meses de relatório de cada conta. Em
users, marque email, first_name e last_name como dados pessoais se quiser que virem token.Renovar o refresh token
O conector usa sempre o refresh token que você colou. Quando a Microsoft devolve um token novo na renovação, o conector o descarta e não o salva. Por isso, o refresh token precisa ser colado de novo quando a sincronização acusar credencial inválida.1
Gere um novo refresh token
Repita o consentimento com o mesmo aplicativo e o mesmo usuário, como em Autenticação e escopos.
2
Cole o token no conector
Em Conectores, abra o Microsoft Advertising e cole o valor em Refresh token. Os campos que você deixa em branco mantêm o valor guardado. Para testar na tela de edição, preencha os quatro campos.
3
Salve
Salve a configuração. A próxima execução já usa o novo token.
Como a sincronização funciona
A frequência vem do passo Sincronização. Cada execução segue esta ordem:- Contas. O conector lista as contas da credencial e busca o detalhe de cada uma. Se a lista vier vazia, ou incompleta, a execução falha sem gravar nada.
- Permissão. Lê os usuários e os papéis de cada cliente. Qualquer erro nessa leitura falha a execução antes de gravar, para nunca publicar uma permissão incompleta.
accountseusers. São reescritos por inteiro.- Desempenho. Um relatório por conta e recurso ligado, um de cada vez. A Microsoft gera o relatório de forma assíncrona: o conector consulta o andamento a cada 10 segundos, por até uma hora, e baixa o arquivo.
- Atualização da permissão nas tabelas de desempenho, quando ela mudou.
- Cadastro. Um download em massa completo por conta, com campanhas, grupos, anúncios e palavras-chave, que serve aos quatro recursos.
campaigns,ad_groups,adsekeywordssão reescritos por inteiro. - Tabelas clean. São recalculadas no fim.
- Full refresh e primeira carga: os últimos 13 meses, para todas as contas, inclusive as encerradas.
- Incremental: para cada conta, os 30 dias que terminam no último dia lido, até hoje. A releitura existe porque a Microsoft revisa números depois do dia, com ajustes de tráfego inválido e conversões tardias. Conta encerrada não recebe pedido novo. Conta sem cursor recebe os 13 meses.
- Se a Microsoft recusar um período longo, o conector refaz o pedido em blocos de 90 dias.
- Os dias lidos substituem por inteiro os mesmos dias da conta na tabela. Os outros dias ficam como estão, nos dois modos.
API da fonte
Os hosts são
https://clientcenter.api.bingads.microsoft.com (Customer Management), https://bulk.api.bingads.microsoft.com (Bulk) e https://reporting.api.bingads.microsoft.com (Reporting). Todas as chamadas são de leitura: o conector nunca cria, altera ou apaga nada no Microsoft Advertising.
Rate limits. A Microsoft não publica os números. O código 117 (CallRateExceeded) limita as chamadas por cliente numa janela deslizante de 60 segundos, e a Microsoft orienta esperar 60 segundos. O código 4204 limita os pedidos de download em massa por período, e a Microsoft orienta esperar até 15 minutos. O código 207 (ConcurrentRequestOverLimit) limita os relatórios simultâneos, e a Microsoft orienta esperar os anteriores terminarem.
O conector faz uma chamada por vez, com tempo limite de 60 segundos. Diante do 117, espera 60 segundos e tenta de novo até 5 vezes. Diante do 4204 ou do 207, espera 15 segundos, dobra a espera a cada tentativa até 2 minutos e desiste depois de 15 minutos de espera somada. Um HTTP 429 espera o Retry-After dentro do mesmo teto de 15 minutos. Erros 5xx têm até 5 tentativas, e falhas de rede até 3. Um token recusado (105, 109 ou 401) é renovado uma vez antes de nova tentativa. Quando o limite persiste, a conta é pulada no desempenho e a execução falha no cadastro, como em Como a sincronização funciona. A execução não tem novas tentativas automáticas.
Referência oficial: Bing Ads API Services Protocol, Handle Throttling
Limitações conhecidas
- Nos quatro recursos de desempenho, o padrão é full refresh, que relê 13 meses de cada conta a cada execução. Marque os quatro como Incremental no Data Catalog.
- Em incremental, uma correção da Microsoft só é capturada enquanto o dia estiver na janela de 30 dias. Para dias mais antigos, rode um full refresh.
- O conector não salva o refresh token novo que a Microsoft devolve. A Microsoft pode invalidar o refresh token a qualquer momento, por exemplo depois de uma troca de senha ou da retirada do consentimento. Quando a sincronização acusar credencial inválida, gere e cole um novo.
- Em
users,email,first_nameelast_namesó viram token se você marcar esses campos como dados pessoais no Data Catalog. O login (user_name) fica sempre em claro e travado, porque alimenta a permissão. - No modo “Espelhar a fonte”, nenhum registro aparece enquanto a associação por e-mail não for liberada para a conexão, e essa liberação ainda não tem tela no Console.
- O login do Microsoft Advertising é a identidade da pessoa. Quem entra no Microsoft Advertising com uma conta pessoal, fora do domínio corporativo cadastrado, não é reconhecido na Strattum. Login que não é endereço de e-mail não concede acesso.
- Não há vínculo de conta: o conector não oferece Exigir login na fonte como prova de identidade.
- Com uma credencial Viewer, ou sem acesso aos usuários de um cliente, as contas desse cliente ficam visíveis no modo “Espelhar a fonte” só para quem tem acesso por vínculo de agência.
- Uma conta com mais de 4 milhões de palavras-chave não cabe no download em massa (
AccountTooBigToDownload). A execução falha na etapa de cadastro enquanto essa conta estiver no alcance da credencial, e as tabelas clean não são recalculadas. O conector não baixa a conta por campanha. - Uma conexão Microsoft Advertising por instalação. O conector lê todas as contas que a credencial alcança, e não há como escolher contas na Strattum.
- Linhas de desempenho de uma conta que saiu do alcance da credencial continuam na tabela.
- Uma conta adiantada em relação ao UTC pode ficar sem o dia local corrente até a execução seguinte.
- Não há conversão de moeda.
- Ficam de fora termos de pesquisa (
search_query_performance), relatórios geográficos, de conversão, por hora, dispositivo ou rede, orçamentos compartilhados, rótulos, metas de conversão, extensões, públicos, Ad Insight e faturamento. - O conector usa só o ambiente de produção da Microsoft, não o sandbox.
Troubleshooting
Próximos passos
Data Catalog
Ligue os recursos e as tabelas clean do Microsoft Advertising e escolha o modo de carga dos relatórios.
Memory
Veja como contas, campanhas, grupos, anúncios, palavras-chave e as pessoas que os operam entram no grafo.
Desenvolvimento local
Desenvolvimento local
O conector não lê variáveis do
.env. As credenciais são informadas no Console e ficam no cofre de segredos da plataforma, sob os nomes BING_ADS_DEVELOPER_TOKEN, BING_ADS_CLIENT_ID, BING_ADS_CLIENT_SECRET, BING_ADS_REFRESH_TOKEN e BING_ADS_IDENTITY_PROVIDER (microsoft ou google; sem ele, vale microsoft). Para testar localmente, crie a conexão pelo Console da stack local.