Integración de Iterable con AppsFlyer

En resumen: Integra los enlaces de atribución basados en OneLink con el sistema Iterable para establecer enlaces profundos desde correos electrónicos. La integración utiliza la compatibilidad de Iterable con enlaces universales, además de los dominios de registro de clics de marca. 

iterable-af-logo.png

Introducción

Los ESP (proveedores de servicios de correo electrónico) pueden ser excelentes fuentes para el tráfico segmentado de usuarios.

Uno de los problemas con los ESP es registrar los clics mientras se mantiene intacta la funcionalidad de enlaces profundos. Los ESP envuelven las URL de enlaces profundos con su propio dominio de registro de clics del ESP. Este procedimiento a veces interrumpe el proceso de enlaces universales de iOS.

Con Iterable, que admite enlaces universales además de su dominio de registro de clics, se pueden seguir realizando enlaces profundos y registro de clics.

Requisitos previos

iOS Android
  • SDK de AppsFlyer para iOS, versión 4.9.0

Configuración de Iterable

Paso 1: Configurar la marca del enlace en Iterable

Crea un dominio de registro de clics dedicado y configura un subdominio (por ejemplo, click.example.com). Puedes hacerlo comprando un dominio designado o utilizando tu propio dominio.

Para obtener más información sobre cómo configurar un dominio de registro de clics con Iterable, consulta aquí.

Paso 2: Subir tu certificado SSL a Iterable

Tu dominio de registro de clics debe incluir el certificado SSL de tu dominio. El certificado SSL debe estar instalado en tu cuenta de Iterable. Las instrucciones para instalar tus certificados SSL se pueden encontrar aquí.

Paso 2: Proporcionar a Iterable un archivo AASA (iOS) y un archivo de enlaces de recursos (Android)

AASA para iOS

Para que Iterable admita los enlaces universales de iOS, necesita un archivo AASA. Consulta las siguientes instrucciones.

Cuando configuras OneLink con enlaces universales, ya tienes un AASA asociado con OneLink. Para obtener el AASA:

  1. Ve a Plantillas de OneLink y busca un OneLink que esté configurado con enlaces universales.
  2. Agrega /.well-known/apple-app-site-association al final de la URL de OneLink.
  3. Pega el OneLink en la barra de direcciones del navegador y presiona Enter. Por ejemplo: <OneLinkSubdomain>.onelink.me/.well-known/apple-app-site-association. Cuando lo hagas, el archivo AASA se descargará en tu computadora. Puedes abrirlo usando cualquier editor de texto simple.
  4. Define las reglas de reescritura de los enlaces. Para más información, consulta aquí.
  5. Envía este archivo AASA a Iterable. Para obtener más información y saber más sobre el contenido de este archivo, consulta la guía de Iterable.

Enlaces de recursos para Android

Cuando configuras OneLink con enlaces de aplicaciones, ya tienes un archivo de enlaces de recursos asociado con OneLink. Para obtener el archivo de enlaces de recursos:

  1. Ve a Plantillas de OneLink y busca un OneLink que esté configurado con enlaces de aplicaciones.
  2. Agrega /.well-known/assetlinks.json al final de la URL de OneLink.
  3. Pega el OneLink en la barra de direcciones del navegador y presiona Enter. Por ejemplo:<OneLinkSubdomain>.onelink.me/.well-known/assetlinks.json. Cuando lo hagas, el archivo de enlaces de recursos se descargará en tu computadora. Puedes abrirlo usando cualquier editor de texto simple.
  4. Envía este archivo de enlaces de recursos a Iterable. Para obtener más información y saber más sobre el contenido de este archivo, consulta la guía de Iterable.

Configuración de tu aplicación

Consulta lo siguiente para configurar tus aplicaciones para que admitan enlaces universales y de aplicaciones.

Paso 1 para Android: Configurar la aplicación para que admita enlaces de aplicaciones

Paso 1: Agregar el dominio de clic a la actividad en el manifiesto de Android

En el manifiesto de Android, agrega el host del dominio de clic y cualquier prefijo en la etiqueta de actividad de la actividad a la que quieres hacer un enlace profundo.

<activity android:name=".DeepLinkActivity">
    <intent-filter  android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.DEFAULT" />
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:scheme="https"
               android:host="click.example.com"
               android:pathPrefix="/campaign" />
     </intent-filter>
</activity>

Paso 2: Configurar la aplicación para resolver dominios de clic

El SDK necesita resolver el OneLink detrás del dominio de clic para obtener los detalles de la campaña. Los detalles se devuelven en el método onAppOpenAttribution.

Para resolver dominios de clic:

  1. Asegúrate de que la versión de tu SDK sea al menos 4.9.0.
  2. Enumera los dominios de clic en la API del SDK setResolveDeepLinkURLs. Esta API debe llamarse antes de la inicialización del SDK. Para obtener más información, consulta la documentación del SDK aquí.
    AppsFlyerLib.getInstance().setResolveDeepLinkURLs("click.example.com");

Paso 1 para iOS: Configurar la aplicación para que admita enlaces universales

En esta sección se explica cómo configurar tu aplicación para que admita enlaces universales.

Paso 1: Asociar dominios de clic en Xcode

  1. En Xcode, haz clic en tu proyecto.
  2. Haz clic en Capabilities (Capacidades).configure-xcode-deeplinking-domain.png
  3. Activa la opción Associated Domains (Dominios asociados).
  4. Haz clic en el signo + y agrega tu dominio de clic. Por ejemplo, applinks:click.example.com.

Consulta lo siguiente para configurar el SDK para resolver enlaces profundos.

Paso 2 para Android: resolver enlaces profundos

El SDK necesita resolver el OneLink detrás del dominio de clic para obtener los detalles de la campaña. Los detalles se devuelven en el método onAppOpenAttribution.

Para resolver dominios de clic:

  1. Asegúrate de que la versión de tu SDK sea al menos 4.9.0.
  2. Enumera los dominios de clic en la propiedad del SDK resolveDeepLinkURLs. Esta propiedad debe configurarse antes de la inicialización del SDK. Para obtener más información, consulta la documentación del SDK aquí.
    AppsFlyerLib.getInstance().setResolveDeepLinkURLs("clickdomain.com", "myclickdomain.com", "anotherclickdomain.com");
    

Paso 2 para iOS: resolver enlaces profundos

El SDK necesita resolver el OneLink detrás del dominio de clic para obtener los detalles de la campaña. Los detalles se devuelven en el método onAppOpenAttribution.

Para resolver dominios de clic:

  1. Asegúrate de que la versión de tu SDK sea al menos 4.9.0.
  2. Enumera los dominios de clic en la propiedad del SDK resolveDeepLinkURLs. Esta propiedad debe configurarse antes de la inicialización del SDK. Para obtener más información, consulta la documentación del SDK aquí.
    Objective-C Swift
    [AppsFlyerLib shared].resolveDeepLinkURLs = @[@"example.com",@"click.example.com"];
  3. Agrega el siguiente código para que el SDK pueda resolver el dominio de registro de clics:
    Objective-C Swift

    Agrega este código en AppDelegate.m

    - (NSDictionary *)allHTTPHeaderFieldsForResolveDeepLinkURL:(NSURL *)URL {
        if ([URL.host  isEqual: @"click.example.com"]) {
            return [NSDictionary dictionary];
        }
        else {
            return nil;
        }
    }

Envío de tu primer correo electrónico

  1. Crea una URL de OneLink en la página Administración de enlaces (o manualmente).
  2. Al crear la URL de OneLink, asegúrate de codificar en la URL todos los valores de los parámetros.
  3. Los siguientes parámetros son muy recomendables para usar:
    • pid (fuente de medios): utiliza una fuente de medios que signifique este uso, por ejemplo, correo electrónico.
    • c (campaña): el nombre de la campaña que se quiere medir.
    • af_dp: el esquema de URI de enlace profundo al que deseas enlazar profundamente a tus usuarios.
    • af_web_dp: dónde redirigir a los usuarios haciendo clic en el enlace en el escritorio.
    • af_ios_url: dónde redirigir a los usuarios que no tienen la aplicación haciendo clic en el enlace en un dispositivo iOS.
    • af_android_url: dónde redirigir a los usuarios que no tienen la aplicación haciendo clic en el enlace en un dispositivo Android.
  4. Coloca la URL de OneLink en el correo electrónico que crees en Iterable. Ejemplo:
    <a href="greatapp.onelink.me/abcd/1234567">Download my great app!</a>
    En este punto, Iterable envuelve el enlace anterior con el dominio de clic que configuraste en los pasos anteriores. Cualquier clic en el dominio de clic redirige al enlace de atribución de OneLink. Si la aplicación está instalada en el dispositivo del usuario, el dominio de clic se enlaza profundamente a la aplicación.

 Ejemplo

Los parámetros de la URL no están codificados en la URL en este ejemplo, para que sean legibles:

https://greatapp.onelink.me/abcd?pid=Email&c=Spring_Newsletter&is_retargeting=true&
af_dp=testapp://path/to/content&af_web_dp=https://www.example.com/path/to/content&
af_ios_url=https://www.example.com/path/to/content&af_android_url=https://www.example.com/path/to/content

Prueba tus enlaces

Después de seguir todos los pasos requeridos mencionados anteriormente, crear la URL de OneLink adecuada y colocarla en un correo electrónico, envíate un correo electrónico de prueba.

¿Qué debes esperar?

Si tienes la aplicación instalada, la aplicación debe ser invocada. Si se implementan las API de enlaces profundos relevantes del SDK de AppsFlyer, debes tener un enlace profundo al contenido relevante.
Además, debe aparecer un clic tanto en el panel de control de AppsFlyer, atribuido a la fuente de medios y campaña proporcionadas, como también en los datos de Iterable.