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

> Correlaciona la atribución y los callbacks de eventos de Adjust con los usuarios de OneSignal enviando el External ID de OneSignal como partner parameter de Adjust.

Adjust es un socio de medición móvil (MMP) que atribuye instalaciones, sesiones y eventos in-app a través de tus canales de marketing. Esta integración envía el [External ID](./users#external-id) de OneSignal a Adjust como el partner parameter `onesignal_customer_id`, para que Adjust pueda correlacionar los eventos que reenvía a OneSignal con el usuario correcto.

## Requisitos

* SDK móvil de OneSignal versión 5.5.0 o superior.
* Un [External ID](./users#external-id) establecido en el usuario de OneSignal. Las sincronizaciones de datos entre Adjust y OneSignal se basan en este ID, por lo que la integración no puede correlacionar eventos para usuarios anónimos.

## Configuración

Dos cosas deben estar en su sitio para que los callbacks de Adjust lleguen al usuario correcto de OneSignal: Adjust debe estar configurado para reenviar eventos a OneSignal y tu aplicación debe adjuntar el External ID como partner parameter en cada sesión.

### 1. Habilita el intercambio de datos en el panel de Adjust

En tu panel de Adjust, habilita la integración con OneSignal y elige qué eventos reenviar. Adjust envía actividad de `install` y `session` por defecto; adicionalmente puedes mapear eventos personalizados e ingresos in-app. Sigue la guía [Set up OneSignal](https://help.adjust.com/en/integrated-partners/onesignal) de Adjust para conocer los pasos exactos.

<Note>
  Sin este paso en el panel, Adjust nunca envía callbacks a OneSignal, así que el código del SDK del siguiente paso no tiene nada a lo que adjuntar el parámetro `onesignal_customer_id`.
</Note>

### 2. Envía el External ID como partner parameter

Cuando un usuario inicia sesión en tu aplicación, llama al [método `login`](./mobile-sdk-reference#login-external-id) de OneSignal para establecer el External ID y, a continuación, llama al método `addGlobalPartnerParameter` de Adjust con la clave `onesignal_customer_id` y el mismo External ID como valor. Adjust reenvía ese par clave–valor en cada callback posterior, y OneSignal usa `onesignal_customer_id` para asociar el callback con el usuario correcto.

<Warning>
  Todos los SDK de Adjust que no son de iOS usan el orden de argumentos `(key, value)`. Swift y Objective-C de iOS usan `(value, forKey: key)`. Pasar el External ID como clave por error rompe la integración de forma silenciosa: Adjust reenviará un parámetro con el nombre de tu cadena de ID de usuario y 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 la referencia del SDK de Adjust subyacente, consulta la documentación de Global Partner Parameters de 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

Adjust usa [iOS Universal Links y Android App Links](https://www.adjust.com/glossary/deep-linking/) para dirigir los toques de push a pantallas específicas de tu aplicación. Al enviar notificaciones de OneSignal que deban abrir un deep link de Adjust, establece la Launch URL de la notificación al deep link de Adjust, como se describe en la guía [Push Notifications](https://help.adjust.com/en/article/push-notifications) de Adjust. Consulta la [guía de Deep linking](./deep-linking) de OneSignal para saber cómo se gestionan las Launch URL en cada plataforma.

## FAQ

### ¿Qué es el partner parameter `onesignal_customer_id`?

`onesignal_customer_id` es la clave exacta que OneSignal lee en los callbacks de Adjust para correlacionar un evento de Adjust con un usuario de OneSignal. Establece su valor con el mismo External ID que pasas a `OneSignal.login`. Cualquier otro nombre de clave no será reconocido.

### ¿Cuándo debo llamar a `Adjust.addGlobalPartnerParameter`?

Llámalo cada vez que llames a `OneSignal.login`: al arrancar la aplicación una vez que se conozca el ID del usuario y, de nuevo, cuando el usuario cambie de cuenta. Esto refleja la [guía sobre login](./mobile-sdk-reference#login-external-id) de OneSignal y mantiene el partner parameter de Adjust sincronizado con el usuario actual de OneSignal.

### ¿Qué ocurre cuando un usuario cierra sesión o cambia de cuenta?

Adjust conserva los global partner parameters en memoria hasta que los cambies o los elimines. Al cerrar sesión, llama a `Adjust.removeGlobalPartnerParameter("onesignal_customer_id")` (o sobrescribe el valor en el siguiente inicio de sesión). De lo contrario, Adjust seguirá atribuyendo los eventos posteriores al External ID del usuario anterior.

### ¿Qué datos envía Adjust a OneSignal?

Por defecto, Adjust reenvía la actividad de `install` y `session`, además de los eventos que mapees en el panel de Adjust. La lista completa de campos reenviados se documenta en el [artículo de integración con OneSignal de 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">
    Establece un identificador estable en tu usuario de OneSignal para que las integraciones con partners puedan correlacionar datos.
  </Card>

  <Card title="Mobile SDK: login" icon="mobile" href="./mobile-sdk-reference#login-external-id">
    Referencia de `OneSignal.login`, incluyendo cuándo llamarlo y su comportamiento de reintento.
  </Card>

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

  <Card title="Keys & IDs" icon="key" href="./keys-and-ids">
    Encuentra tu App ID y REST API Key de OneSignal para la configuración del panel de Adjust.
  </Card>
</Columns>
