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

# Adjust

> Correlacione a atribuição e os callbacks de eventos do Adjust com os usuários do OneSignal enviando o External ID do OneSignal como partner parameter do Adjust.

O Adjust é um parceiro de medição móvel (MMP) que atribui instalações, sessões e eventos in-app em todos os seus canais de marketing. Esta integração envia o [External ID](./users#external-id) do OneSignal para o Adjust como o partner parameter `onesignal_customer_id`, para que o Adjust possa correlacionar os eventos que encaminha para o OneSignal com o usuário correto.

## Requisitos

* SDK móvel do OneSignal versão 5.5.0 ou superior.
* Um [External ID](./users#external-id) definido no usuário do OneSignal. As sincronizações de dados entre o Adjust e o OneSignal são baseadas nesse ID, portanto, a integração não consegue correlacionar eventos para usuários anônimos.

## Configuração

Duas coisas precisam estar em vigor para que os callbacks do Adjust cheguem ao usuário correto do OneSignal: o Adjust precisa estar configurado para encaminhar eventos para o OneSignal e seu aplicativo precisa anexar o External ID como partner parameter em cada sessão.

### 1. Ative o compartilhamento de dados no painel do Adjust

No seu painel do Adjust, ative a integração com o OneSignal e escolha quais eventos encaminhar. Por padrão, o Adjust envia atividade de `install` e `session`; você também pode mapear eventos personalizados e receita in-app. Siga o guia [Set up OneSignal](https://help.adjust.com/en/integrated-partners/onesignal) do Adjust para os passos exatos.

<Note>
  Sem essa etapa no painel, o Adjust nunca envia callbacks para o OneSignal, então o código SDK do próximo passo não tem nada ao qual anexar o parâmetro `onesignal_customer_id`.
</Note>

### 2. Envie o External ID como partner parameter

Quando um usuário faz login no seu aplicativo, chame o [método `login`](./mobile-sdk-reference#login-external-id) do OneSignal para definir o External ID e, em seguida, chame o método `addGlobalPartnerParameter` do Adjust com a chave `onesignal_customer_id` e o mesmo External ID como valor. O Adjust encaminha esse par chave–valor em cada callback subsequente, e o OneSignal usa `onesignal_customer_id` para associar o callback ao usuário correto.

<Warning>
  Todos os SDKs Adjust que não são do iOS usam a ordem de argumentos `(key, value)`. Swift e Objective-C do iOS usam `(value, forKey: key)`. Passar o External ID como chave por engano quebra a integração silenciosamente: o Adjust encaminhará um parâmetro nomeado de acordo com sua string de ID do usuário, e o OneSignal nunca verá `onesignal_customer_id`.
</Warning>

<CodeGroup>
  ```kotlin Kotlin theme={null}
  val externalId = "your_user_id"
  OneSignal.login(externalId)
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId)
  ```

  ```java Java theme={null}
  String externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```swift Swift theme={null}
  let externalId = "your_user_id"
  OneSignal.login(externalId)
  Adjust.addGlobalPartnerParameter(externalId, forKey: "onesignal_customer_id")
  ```

  ```objc Objective-C theme={null}
  NSString *externalId = @"your_user_id";
  [OneSignal login:externalId];
  [Adjust addGlobalPartnerParameter:externalId forKey:@"onesignal_customer_id"];
  ```

  ```csharp C# theme={null}
  string externalId = "your_user_id";
  OneSignal.Login(externalId);
  Adjust.AddGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```javascript React Native theme={null}
  const externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```dart Flutter theme={null}
  final externalId = "your_user_id";
  OneSignal.login(externalId);
  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```

  ```javascript Cordova/Ionic theme={null}
  const externalId = "your_user_id";

  // Ionic
  OneSignal.login(externalId);

  // Cordova
  window.plugins.OneSignal.login(externalId);

  Adjust.addGlobalPartnerParameter("onesignal_customer_id", externalId);
  ```
</CodeGroup>

Para a referência do SDK Adjust subjacente, consulte a documentação de Global Partner Parameters do Adjust para [Android](https://dev.adjust.com/en/sdk/android/features/session-parameters#add-global-partner-parameters) e [iOS](https://dev.adjust.com/en/sdk/ios/features/session-parameters/#global-partner-parameters).

## Deep linking

O Adjust usa [iOS Universal Links e Android App Links](https://www.adjust.com/glossary/deep-linking/) para rotear toques em push para telas específicas do seu aplicativo. Ao enviar notificações do OneSignal que devem abrir um deep link do Adjust, defina a Launch URL da notificação como o deep link do Adjust, conforme descrito no guia [Push Notifications](https://help.adjust.com/en/article/push-notifications) do Adjust. Consulte o [guia de Deep linking](./deep-linking) do OneSignal para saber como as Launch URLs são tratadas em cada plataforma.

## FAQ

### O que é o partner parameter `onesignal_customer_id`?

`onesignal_customer_id` é a chave exata que o OneSignal lê nos callbacks do Adjust para correlacionar um evento do Adjust com um usuário do OneSignal. Defina seu valor com o mesmo External ID que você passa para `OneSignal.login`. Nenhum outro nome de chave será reconhecido.

### Quando devo chamar `Adjust.addGlobalPartnerParameter`?

Chame-o toda vez que chamar `OneSignal.login`: na inicialização do aplicativo, uma vez que o ID do usuário seja conhecido, e novamente em trocas de conta. Isso reflete a [orientação sobre login](./mobile-sdk-reference#login-external-id) do OneSignal e mantém o partner parameter do Adjust sincronizado com o usuário atual do OneSignal.

### O que acontece quando um usuário faz logout ou troca de conta?

O Adjust mantém os global partner parameters em memória até que você os altere ou remova. No logout, chame `Adjust.removeGlobalPartnerParameter("onesignal_customer_id")` (ou sobrescreva o valor no próximo login). Caso contrário, o Adjust continuará atribuindo os eventos subsequentes ao External ID do usuário anterior.

### Quais dados o Adjust envia para o OneSignal?

Por padrão, o Adjust encaminha a atividade de `install` e `session`, além de quaisquer eventos que você mapear no painel do Adjust. A lista completa de campos encaminhados está documentada no [artigo de integração com OneSignal do Adjust](https://help.adjust.com/en/integrated-partners/onesignal).

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="External ID" icon="id-card" href="./users#external-id">
    Defina um identificador estável no seu usuário do OneSignal para que as integrações com parceiros possam correlacionar dados.
  </Card>

  <Card title="Mobile SDK: login" icon="mobile" href="./mobile-sdk-reference#login-external-id">
    Referência para `OneSignal.login`, incluindo quando chamá-lo e o comportamento de nova tentativa.
  </Card>

  <Card title="Deep linking" icon="link" href="./deep-linking">
    Configure Universal Links, App Links e esquemas URI para push, in-app, email e SMS.
  </Card>

  <Card title="Keys & IDs" icon="key" href="./keys-and-ids">
    Encontre seu App ID e REST API Key do OneSignal para a configuração do painel do Adjust.
  </Card>
</Columns>
