> ## Documentation Index
> Fetch the complete documentation index at: https://strattumai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# LinkedIn Ads

> Contas de anúncio, grupos de campanha, campanhas, criativos e métricas diárias do LinkedIn Ads, no Data Catalog e no Memory.

O conector LinkedIn Ads lê, pela API de Marketing do LinkedIn, as contas de anúncio em que o membro que autorizou o acesso tem papel. Ele traz o cadastro de contas, grupos de campanha, campanhas e criativos, e as métricas diárias por campanha e por criativo.

| | |
| - | - |
| **Status** | Disponível |
| **Conteúdo** | Registros |
| **Autenticação** | OAuth 2.0 com refresh token |
| **Permissões** | Sem permissão por item |
| **Sincronização** | Incremental e full refresh, por recurso |
| **Última revisão** | 08/10/2026 |

## Capacidades

* Lê todas as contas de anúncio em que o membro que gerou o refresh token tem papel, em qualquer status.
* Traz ao Data Catalog o cadastro de cada conta: grupos de campanha, campanhas e criativos. Os removidos, arquivados e cancelados entram com o `status` deles, porque o LinkedIn os mantém enquanto têm dado de desempenho.
* Traz, por dia e por campanha ou por criativo, impressões, cliques, cliques na página de destino, engajamentos, conversões no site (total, após clique e após visualização), leads do One Click Lead Gen, custo e valor das conversões.
* Instala 8 tabelas clean prontas, com dinheiro em decimal exato, datas em UTC e totais diários por grupo de campanha e por conta.
* Alimenta o Memory com os nós `AdAccount`, `AdCampaignGroup`, `AdCampaign` e `Ad`, ligados na hierarquia da conta, e com o início de cada campanha como evento de linha do tempo. Os rótulos `AdAccount`, `AdCampaign` e `Ad` são os mesmos do Google Ads, e a propriedade `source` (`linkedin_ads`) diz de qual plataforma é cada nó. Não há fusão com nós de outros 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.

| Recurso | O que contém | Carga | Cursor | Destino | Permissão por item |
| - | - | - | - | - | - |
| `ad_accounts` | As contas de anúncio lidas, com nome, `status`, `type`, `currency`, `test`, a organização anunciante (`reference`) e a situação de veiculação | Full refresh | Nenhum | Catálogo e Memory | Não |
| `campaign_groups` | Grupos de campanha, com status, se é o grupo padrão da conta (`backfilled`), início, término e orçamentos total e diário | Full refresh | Nenhum | Catálogo e Memory | Não |
| `campaigns` | Campanhas, com o grupo, status, tipo, tipo de custo, objetivo, início, término, orçamentos, lance (`unit_cost`) e ritmo de gasto (`pacing_strategy`) | Full refresh | Nenhum | Catálogo e Memory | Não |
| `creatives` | Criativos, os anúncios que as pessoas veem, com a campanha, o status pretendido, se está em veiculação, o status da revisão, os motivos de retenção e a referência do post | Full refresh | Nenhum | Catálogo e Memory | Não |
| `campaign_metrics` | Uma linha por campanha e dia, com as onze métricas | Incremental ou full refresh | `date` | Catálogo | Não |
| `creative_metrics` | Uma linha por criativo e dia, com as onze métricas | Incremental ou full refresh | `date` | Catálogo | Não |

As onze métricas são `impressions`, `clicks`, `landing_page_clicks`, `total_engagements`, `external_website_conversions`, `external_website_post_click_conversions`, `external_website_post_view_conversions`, `one_click_leads`, `cost_in_local_currency`, `cost_in_usd` e `conversion_value_in_local_currency`.

<Note>
  As 8 tabelas clean do LinkedIn Ads são instaladas quando você cria o conector, fora do contexto. Ligue no Data Catalog as que você quer usar. Cada uma passa a ser atualizada depois de cada sincronização. São elas: `linkedin_ads_accounts`, `linkedin_ads_campaign_groups`, `linkedin_ads_campaigns`, `linkedin_ads_creatives`, `linkedin_ads_campaign_daily`, `linkedin_ads_creative_daily`, `linkedin_ads_campaign_group_daily` e `linkedin_ads_account_daily`.
</Note>

### Como ler os dados

* `date` é o dia em UTC, como a API do LinkedIn entrega. O conector não converte para o fuso da conta.
* Toda linha traz `account_id` e `currency`, a moeda da conta (código ISO 4217). `cost_in_local_currency` e `conversion_value_in_local_currency` estão nessa moeda, e o conector não converte entre moedas. `cost_in_usd` é o custo em dólares que o próprio LinkedIn calcula, a coluna para somar contas de moedas diferentes. Em conta com moeda BRL, o LinkedIn mostra orçamento, lance e gasto em reais e cobra em dólares.
* Na raw, o dinheiro é o texto decimal que a API envia. Na clean, vira `DECIMAL(18,6)` na moeda da conta: `cost`, `cost_usd` e `conversion_value` nas tabelas de métrica, `daily_budget`, `total_budget` e `unit_cost` nas de cadastro.
* Orçamento e lance chegam na raw em `*_amount` e `*_currency`. Quando o LinkedIn envia o valor sem código de moeda, como já aconteceu com o orçamento diário de grupos de campanha, `*_currency` fica NULL e o valor está na moeda da conta. Na clean, o código de moeda recebido ao lado do valor não aparece.
* Métrica que a API deixa de enviar vale `0`. Orçamento ou lance ausente fica NULL, que quer dizer valor desconhecido.
* Os ids de grupo, campanha e criativo só são únicos dentro da conta. Use as colunas de chave da clean (`campaign_group_key`, `campaign_key`, `ad_key`), que juntam o id da conta e o id do objeto com `:`.
* `linkedin_ads_campaign_group_daily` e `linkedin_ads_account_daily` são a soma de `campaign_metrics`. Campanha que a busca de campanhas da conta não devolveu fica com `campaign_group_id` NULL e forma um balde por conta e dia em `linkedin_ads_campaign_group_daily`: os grupos mais esse balde somam o total da conta.
* `linkedin_ads_creative_daily` não traz a campanha. Chegue nela por `campaign_key`, em `linkedin_ads_creatives`.
* Contas de teste entram no cadastro, com `test` verdadeiro, e ficam fora das métricas, porque uma conta de teste não veicula anúncios.
* Horários (`created_at`, `start_at`, `end_at`) saem em UTC. `end_at` é NULL quando o grupo ou a campanha não tem data de término. As listas de status (`serving_statuses`, `serving_hold_reasons`) saem como texto JSON.

## 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

No LinkedIn, o acesso é por conta de anúncio. Cada conta tem a lista dos membros com o papel de cada um (`VIEWER`, `CREATIVE_MANAGER`, `CAMPAIGN_MANAGER`, `ACCOUNT_MANAGER` ou `ACCOUNT_BILLING_ADMIN`), e a conta é o limite de visibilidade das campanhas dela.

### Como a Strattum traduz o acesso

A Strattum não grava permissão por item. O conector não lê os membros nem os papéis de cada conta: ele usa a lista de contas do membro que autorizou só para descobrir quais contas ler. O LinkedIn identifica cada membro por um id opaco (`urn:li:person`), sem e-mail, e a plataforma ainda não tem como ligar esse id a um usuário da Strattum. Todas as contas que a credencial alcança, e todas as linhas delas, 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**. Para tirar uma conta da Strattum, remova o papel do membro que autorizou nessa conta no LinkedIn, o que também tira o acesso dele a ela. Na execução seguinte, o cadastro da conta sai das tabelas. As métricas já gravadas dela continuam, até um full refresh.

## Pré-requisitos

* Um app no LinkedIn Developer Portal com o produto **Advertising API** aprovado e com o refresh token programático liberado pelo LinkedIn.
* Um membro do LinkedIn com papel em cada conta de anúncio que você quer ler. O conector só lê, e qualquer papel serve para isso, inclusive `VIEWER`.
* Uma só conexão LinkedIn Ads por instalação da Strattum. Ela lê todas as contas que o membro alcança.
* Alguém para gerar um novo refresh token a cada 365 dias. Veja o aviso em **Autenticação e escopos**.

## Autenticação e escopos

A autenticação é OAuth 2.0 de três pernas, de um único membro, com refresh token programático. O conector troca o refresh token por um access token no começo de cada tarefa de sincronização, e no teste de conexão. O access token fica só em memória. O conector não grava nada de volta no cofre: se o LinkedIn devolver um refresh token diferente do cadastrado, o teste e a sincronização avisam. O LinkedIn não documenta rotação do refresh token.

| Escopo ou permissão | Para quê |
| - | - |
| `r_ads` | Descobrir as contas de anúncio e ler o cadastro: contas, grupos de campanha, campanhas e criativos. |
| `r_ads_reporting` | Ler as métricas diárias. Com só `r_ads`, o conector lista contas e campanhas, e as métricas falham com erro 403. |
| Produto Advertising API no app | Dar ao app os dois escopos acima. |
| Papel do membro na conta de anúncio | Definir quais contas o conector lê. |

<Warning>
  O refresh token vale 365 dias a partir do consentimento, e usá-lo não estende o prazo. Quando vence, o membro precisa autorizar de novo e você cola o novo refresh token no conector. O teste de conexão avisa quando faltam menos de 30 dias. Pedir um conjunto de escopos diferente do já concedido invalida os tokens anteriores do mesmo membro no mesmo app.
</Warning>

<Steps>
  <Step title="Prepare o app no LinkedIn Developer Portal">
    Abra o app que vai ler as contas, ou crie um, e confirme que ele tem o produto **Advertising API** e o refresh token programático liberados.
  </Step>

  <Step title="Copie o Client ID e o Client Secret">
    Na aba **Auth** do app, copie o Client ID e o Client Secret.
  </Step>

  <Step title="Gere o refresh token">
    No [Token Generator](https://www.linkedin.com/developers/tools/oauth/token-generator), escolha o app e marque exatamente os escopos `r_ads` e `r_ads_reporting`. Autorize com o membro que tem papel nas contas de anúncio e guarde o refresh token devolvido.
  </Step>

  <Step title="Confira o papel do membro">
    No Campaign Manager, confirme que o membro que autorizou tem papel em cada conta que o conector vai ler. Conta sem papel do membro não é lida.
  </Step>
</Steps>

## Configuração no Console

<Steps>
  <Step title="Abra o assistente">
    Em **Conectores**, clique em **+ Nova Conexão** e selecione **LinkedIn Ads**, em **Mídia paga**.
  </Step>

  <Step title="Preencha a conexão">
    **Nome do Conector** (Opcional): como a conexão aparece na lista. O padrão é `LinkedIn Ads`.

    **Client ID** (Obrigatório): o Client ID do app do LinkedIn que tem o produto Advertising API.

    **Client Secret** (Obrigatório): o Client Secret do mesmo app.

    **Refresh Token** (Obrigatório): o token gerado com exatamente os escopos `r_ads` e `r_ads_reporting`.
  </Step>

  <Step title="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 de anúncio do membro, lê cada uma delas e consulta as métricas dos últimos 7 dias fechados da primeira conta que não é de teste. Quando passa, informa quantas contas leu e quantos dias o LinkedIn informa que faltam para o refresh token vencer. Ele falha quando a credencial é recusada, quando falta o escopo `r_ads` ou `r_ads_reporting` e quando o membro não tem papel em nenhuma conta. Conecta com aviso quando só há contas de teste, quando o LinkedIn devolve um refresh token diferente do cadastrado e quando faltam menos de 30 dias para o token vencer.
  </Step>

  <Step title="Escolha a frequência">
    Em **Sincronização** (Obrigatório), escolha a frequência. O padrão do LinkedIn Ads é uma vez por dia, às 06:00 UTC.
  </Step>

  <Step title="Defina o acesso">
    Em **Permissionamento**, defina **Quem pode usar este conector**. O **Comportamento dos dados** é sempre "Aberto". Se a política de acesso não for salva junto com o conector, o Console avisa com "Política de acesso pendente", e o conector fica invisível até você configurá-la nessa mesma aba, na tela de edição.
  </Step>

  <Step title="Revise e salve">
    Em **Revisão**, confira os dados e salve. O Client Secret e o Refresh Token aparecem mascarados.
  </Step>

  <Step title="Ligue os recursos no Data Catalog">
    No Data Catalog, ligue os recursos e as tabelas clean que você quer carregar. Nos dois recursos de métrica, escolha o modo **Incremental** na aba **Carga**: o padrão é full refresh, e a cada execução ele relê os 12 meses de métrica e gasta muito mais da cota diária.
  </Step>
</Steps>

### Renovar o refresh token

<Steps>
  <Step title="Gere um novo refresh token">
    No Token Generator, gere outro token com os escopos `r_ads` e `r_ads_reporting`, com o mesmo app e o mesmo membro.
  </Step>

  <Step title="Cole o token no conector">
    Em **Conectores**, abra o LinkedIn Ads e cole o valor em **Refresh Token**. Os campos que você deixa em branco mantêm o valor guardado, então não é preciso digitar o Client ID e o Client Secret de novo. Para testar na tela de edição, preencha os três campos.
  </Step>

  <Step title="Salve">
    Salve a configuração. A próxima execução já usa o novo token.
  </Step>
</Steps>

## Como a sincronização funciona

A frequência vem do passo **Sincronização**. O padrão é uma execução por dia, às 06:00 UTC, porque o conector só lê dias fechados em UTC. Na primeira execução, a plataforma limita cada recurso a 1.000 linhas, como amostra. A execução seguinte é completa.

**Contas.** Cada execução descobre as contas uma vez: lista as contas em que o membro tem papel e lê cada uma, em qualquer status. Todos os recursos usam essa lista. Erro da API em qualquer conta falha a execução, para não gravar uma leitura incompleta. Um membro sem papel em nenhuma conta não gera erro na sincronização, e a execução termina com zero linhas. O teste de conexão bloqueia esse caso.

**Ordem.** O conector lê os recursos selecionados um por um, na ordem `ad_accounts`, `campaign_groups`, `campaigns`, `creatives`, `campaign_metrics` e `creative_metrics`, conta por conta, com uma chamada por vez. Recurso desligado no Data Catalog não é lido. Se um recurso falha, a execução para nele e os seguintes não rodam. As tabelas clean só são montadas quando todos os recursos terminam.

**Cadastro em full refresh.** `ad_accounts`, `campaign_groups`, `campaigns` e `creatives` são reescritos por inteiro a cada execução. Grupos e campanhas são buscados em todos os status e os criativos, sem filtro, então os removidos, arquivados e cancelados continuam como linhas. Um objeto que o LinkedIn deixa de devolver some da tabela na execução seguinte.

**Métricas.** O último dia lido é sempre ontem, em UTC. O dia de hoje nunca entra. Só as contas que não são de teste têm métrica. As consultas saem em blocos de 30 dias, do mais recente para o mais antigo, uma por conta e por bloco. Como a API não pagina e devolve no máximo 15.000 elementos, um bloco que bate esse teto é descartado, partido ao meio e lido de novo, até chegar a um dia.

* **Primeira carga e full refresh:** os 12 meses que terminam ontem. Uma conta tem cerca de 13 blocos por recurso de métrica.
* **Incremental:** relê os últimos 30 dias fechados e substitui as linhas pela chave de cada linha. A releitura existe porque o LinkedIn atribui conversões com janelas de 1 a 90 dias, então o número de um dia pode mudar depois. Se o recurso ficou desligado ou falhando por mais de 30 dias, a janela começa 29 dias antes do último dia carregado, para que todos os dias desde então sejam lidos.
* **Conta nova:** uma conta que entra no alcance do membro depois da primeira carga recebe os 12 meses, mesmo em incremental. Uma conta que sai e volta também.

**Remoção.** No cadastro, o full refresh reflete a remoção. Nas métricas em incremental, os dias já gravados de uma conta que deixou de ser lida continuam na tabela. Um full refresh os remove.

**Falhas.** A tarefa de extração tenta de novo até 3 vezes, depois de 30, 60 e 120 segundos, só o que uma nova tentativa pode resolver: erro 5xx, queda de conexão e indisponibilidade do endpoint de token. Não repete cota diária esgotada, versão da API fora do ar, credencial recusada, erro 403 nem outro erro 4xx que não seja 408 ou 429.

## API da fonte

| Método e caminho | Usado para | Recurso |
| - | - | - |
| `POST https://www.linkedin.com/oauth/v2/accessToken` | Trocar o refresh token por um access token | Todos |
| `GET /rest/adAccountUsers?q=authenticatedUser` | Listar as contas em que o membro tem papel, de 100 em 100 | Todos |
| `GET /rest/adAccounts/{id}` | Ler cada conta: nome, status, tipo, moeda, se é de teste, organização anunciante e datas | `ad_accounts` e a descoberta de contas |
| `GET /rest/adAccounts/{id}/adCampaignGroups?q=search` | Buscar os grupos de campanha, em todos os status | `campaign_groups` |
| `GET /rest/adAccounts/{id}/adCampaigns?q=search` | Buscar as campanhas, em todos os status, e montar o mapa de campanha para grupo | `campaigns` e `campaign_metrics` |
| `GET /rest/adAccounts/{id}/creatives?q=criteria` | Buscar os criativos, sem critério | `creatives` |
| `GET /rest/adAnalytics?q=analytics&pivot=CAMPAIGN&timeGranularity=DAILY` | Métricas diárias por campanha | `campaign_metrics` |
| `GET /rest/adAnalytics?q=analytics&pivot=CREATIVE&timeGranularity=DAILY` | Métricas diárias por criativo | `creative_metrics` |
| `GET /rest/adAnalytics?q=analytics&pivot=ACCOUNT&timeGranularity=ALL` | Provar que o token lê métricas, só no teste de conexão | Nenhum |

Todas as chamadas só leem dados. O host da API é `https://api.linkedin.com`, e toda chamada leva o header `Linkedin-Version: 202609`. As buscas de cadastro paginam por cursor (`pageSize` e `pageToken`), com 1.000 grupos, 500 campanhas ou 100 criativos por página. As consultas de métrica pedem as onze métricas no parâmetro `fields`, porque sem ele a API devolve só impressões e cliques.

**Rate limits.** O LinkedIn aplica duas cotas diárias: uma por aplicativo e uma por membro dentro do aplicativo. Elas reiniciam à meia-noite UTC e os valores não são publicados: aparecem na aba **Analytics** do app no Developer Portal. A API de métricas tem ainda um teto de 45 milhões de valores de métrica por janela de 5 minutos, longe do que este conector pede, e a troca do refresh token também tem cota diária por aplicativo. Uma conta custa cerca de 7 chamadas por execução incremental, fora a listagem de contas e a troca de token. Em full refresh, ou na primeira carga, cada recurso de métrica soma cerca de 13 blocos por conta.

O conector envia uma chamada por vez, com tempo limite de 120 segundos. Diante de um erro 429, espera o `Retry-After` quando a resposta traz um valor em segundos, senão um recuo que dobra a cada tentativa, de 1 segundo até no máximo 60, com variação aleatória, e tenta de novo até 3 vezes. Esgotadas as tentativas, a cota diária conta como gasta: a execução falha com a indicação de que as cotas reiniciam à meia-noite UTC, sem repetir a leitura. Erros 5xx e quedas de conexão têm até 4 novas tentativas, com o mesmo recuo. Um erro 401 provoca uma nova troca do refresh token, uma vez por chamada. Os erros 403 e 426 nunca são repetidos.

Referência oficial: [LinkedIn API, rate limiting](https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits) e [LinkedIn Ads, reporting](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting)

## Limitações conhecidas

* Sem permissão por item: todo usuário que pode usar o conector vê todas as contas que a credencial alcança. Para restringir, limite **Quem pode usar este conector**.
* Uma conexão LinkedIn Ads por instalação. O conector lê todas as contas em que o membro tem papel, e não há como escolher contas na Strattum. Para tirar uma conta, remova o papel do membro nela no LinkedIn.
* O refresh token vence 365 dias depois do consentimento e a renovação é manual. O conector não regrava a credencial e o Console não conduz o consentimento OAuth: quem gera o token é você, no Token Generator.
* O dia de hoje nunca é lido. Em incremental, a plataforma não regrava na execução seguinte o dia mais recente já carregado. Em uso diário, as releituras seguintes o cobrem. Depois de uma pausa de mais de 30 dias, esse dia fica com o valor da última leitura, até um full refresh.
* Uma correção na fonte só é capturada enquanto o dia estiver nos últimos 30 dias fechados. Conversão com janela de atribuição maior que 30 dias, que muda depois disso, fica com o número antigo até um full refresh.
* O histórico vai até 12 meses. Os termos da API de Marketing do LinkedIn dão um ano como prazo de guarda para dados de administração e de relatório de contas de anúncio, e o conector não apaga dias antigos da tabela: a retenção é responsabilidade do cliente. Veja [Data Storage Requirements](https://learn.microsoft.com/en-us/linkedin/marketing/data-storage-requirements).
* Conta de teste do LinkedIn não veicula anúncios, então não tem métrica. Recurso de métrica que ainda não teve nenhuma linha relê os 12 meses a cada execução incremental, até a primeira linha aparecer. A API também devolve resposta vazia quando o membro não tem acesso de leitura à conta, então uma tabela de métrica vazia nem sempre é falta de atividade.
* O criativo traz só os metadados. O texto e a página de destino do anúncio ficam no post que `content_reference` aponta, e o conector não lê o post.
* Ficam de fora o direcionamento das campanhas, as métricas por perfil demográfico (cargo, empresa, país e outros), os leads dos formulários, os usuários e papéis de cada conta e a receita atribuída. `one_click_leads` é só a contagem de leads do dia.
* Orçamentos, lances e métricas ficam no Data Catalog e não viram propriedade dos nós do Memory.
* Um único dia de uma conta com 15.000 linhas ou mais numa consulta de métrica falha a execução, porque a API não oferece como ler o resto.
* Não há conversão de moeda entre contas.
* O conector usa a versão `202609` da API de Marketing, que o LinkedIn encerra em 15/09/2027. Depois dessa data toda chamada falha, até a plataforma ser atualizada para uma versão vigente. Veja [Marketing API, migrations](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/migrations).

## Troubleshooting

| Mensagem ou sintoma | Causa | O que fazer |
| - | - | - |
| Client ID, client secret e refresh token são obrigatórios. | Um dos três campos está vazio. | Preencha os três com os dados do app LinkedIn e com o refresh token gerado para os escopos `r_ads` e `r_ads_reporting`. |
| Client ID ou client secret incorretos. | Os valores estão errados, ou não são do mesmo app que gerou o refresh token. | Copie os dois da aba **Auth** do app no LinkedIn Developer Portal e confirme que é o app que gerou o token. |
| O refresh token foi recusado: está inválido, expirado ou revogado. | O token passou dos 365 dias, foi revogado, ou foi invalidado por um novo consentimento com outro conjunto de escopos. | Gere um novo token no Token Generator com os escopos `r_ads` e `r_ads_reporting` e cole no editor do conector. |
| A credencial não tem permissão para ler as contas de anúncio. | Falta o escopo `r_ads`, o membro não tem papel nas contas, ou o app não tem o produto Advertising API. | Gere o token com o escopo `r_ads`, confirme o papel do membro e o produto Advertising API no app. |
| O membro que autorizou não tem papel em nenhuma conta de anúncio. | O membro do token não aparece em nenhuma conta. | Peça a um administrador da conta um papel para o membro no Campaign Manager, ou gere o token com outro membro, e teste de novo. |
| O token não tem o scope r\_ads\_reporting, necessário para ler as métricas. | O token foi gerado só com `r_ads`. | Gere um novo token com exatamente os escopos `r_ads` e `r_ads_reporting`. |
| Só há contas de teste: elas não veiculam anúncios, então as métricas virão vazias. | Todas as contas que o membro alcança são de teste. | Use um membro com papel numa conta de produção para ver métricas. |
| O refresh token vence em N dia(s). | Faltam menos de 30 dias para o fim dos 365 dias do token. | Gere um novo token e cole no editor do conector antes do vencimento. Usar o token não estende o prazo. |
| O LinkedIn devolveu um refresh token novo, que o conector não grava; o registrado pode deixar de valer. | O LinkedIn rotacionou o refresh token na troca. | Gere um novo refresh token no Token Generator e cole no editor do conector. |
| O limite de requisições da API do LinkedIn foi atingido. | A cota diária do app ou do membro acabou. | Aguarde. As cotas se renovam à meia-noite UTC. Use o modo incremental nas métricas. |
| A versão da API do LinkedIn usada pelo conector saiu do ar. | A API respondeu 426: o LinkedIn encerrou a versão `202609`. | Atualize a plataforma para uma versão que use a API vigente ou contate o suporte da Strattum. |
| Não foi possível contatar a API do LinkedIn. | Falha de rede entre a plataforma e o LinkedIn. | Verifique a conectividade de rede e teste de novo. |
| Erro ao testar a conexão com o LinkedIn Ads (HTTP N). | O LinkedIn respondeu com um erro que o teste não classifica. | Tente de novo. Se o erro persistir, contate o suporte do LinkedIn. |
| A execução falha com LinkedIn Ads API error e status=403. | O token perdeu um escopo, ou o membro perdeu o papel numa conta. | Gere um novo token com os dois escopos e confira o papel do membro nas contas. |
| A execução falha com LinkedIn Ads API error e status=429, e a nota de que as cotas diárias reiniciam à meia-noite UTC. | A cota diária foi gasta durante a execução. | Espere a meia-noite UTC. Para gastar menos, ponha as métricas em modo incremental. |
| Já existe um conector do tipo linkedin\_ads. | A instalação já tem uma conexão LinkedIn Ads. | Edite a conexão existente ou remova-a antes de criar outra. |
| Política de acesso pendente. | O conector foi criado, mas a política de acesso não foi salva. | Abra o conector, vá em **Permissionamento** e defina **Quem pode usar este conector**. |
| As tabelas `linkedin_ads_*` não aparecem na clean. | As tabelas clean estão fora do contexto. | Ligue-as no Data Catalog e rode a sincronização. |
| Cada recurso da primeira execução tem no máximo 1.000 linhas. | A primeira execução é uma amostra. | Aguarde a execução seguinte, que é completa. |
| As tabelas de métrica estão vazias. | Só há contas de teste, não houve veiculação no período, ou o membro não tem acesso de leitura à conta. | Confira o campo `test` em `ad_accounts`, a atividade no Campaign Manager e o papel do membro. |

## Próximos passos

<CardGroup cols={2}>
  <Card title="Data Catalog" icon="database" href="/data-catalog/overview">
    Ligue os recursos e as tabelas clean do LinkedIn Ads e escolha o modo de carga das métricas.
  </Card>

  <Card title="Memory" icon="brain" href="/memory/overview">
    Veja como contas, grupos de campanha, campanhas e anúncios entram no grafo.
  </Card>
</CardGroup>

<Accordion title="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 `LINKEDIN_ADS_CLIENT_ID`, `LINKEDIN_ADS_CLIENT_SECRET` e `LINKEDIN_ADS_REFRESH_TOKEN`. Para testar localmente, crie a conexão pelo Console da stack local.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.