Invitación de usuario de Android

Resumen General

Implementa y atribuye enlaces de invitación de usuario para cuando los usuarios existentes refieran a otros a tu aplicación.
Para ver una introducción, consulta Invitaciones de usuario.

¿Quieres ver un ejemplo completo? consulta la fórmula:

Implementar invitaciones de usuario

Antes de empezar: sincronízate con el marketer para averiguar los casos de uso exactos que desea para los enlaces y para obtener una lista de los parámetros que desea implementar.

Para implementar la atribución de invitaciones de usuario, completa los siguientes pasos:

  1. Configura la generación de enlaces de invitación para generar enlaces de invitación.
  2. OPCIONAL Registra la creación del enlace de invitación.
  3. Configura enlaces profundos unificados (UDL)
  4. OPCIONAL Recupera datos del referente de enlaces de invitación de usuario.
  5. Opcional Configura recompensas para el referente.

El código siguiente se basa en el ejemplo del marketer.

Set up invite link generation

Para permitir que los usuarios inviten a sus amigos a tu aplicación, necesitas una forma de generar enlaces de invitación de usuario. Esto se hace usando LinkGenerator.
Para configurar la generación de enlaces de invitación de usuario:

  1. Asegúrate de importar las siguientes dependencias:

    import com.appsflyer.AppsFlyerLib;
    import com.appsflyer.CreateOneLinkHttpTask;
    import com.appsflyer.share.LinkGenerator;
    import com.appsflyer.share.ShareInviteHelper;
    
  2. Configura una plantilla de OneLink utilizando setAppInviteOneLink() (El ID de la plantilla es proporcionado por el marketer):

    AppsFlyerLib.getInstance().setAppInviteOneLink("H5hv"); // set the OneLink template ID the user invite links will be based on
    

    📘

    Nota

    • Asegúrate de llamar a setAppInviteOneLink() antes de llamar a start.
    • La plantilla de OneLink debe estar relacionada con la aplicación.
  3. Crea una etiqueta LinkGenerator using ShareInviteHelper.generateInviteUrl().

    LinkGenerator linkGenerator = ShareInviteHelper.generateInviteUrl(getApplicationContext());
    
  4. Según el flujo de usuario que desees lograr, agrega los siguientes parámetros utilizando linkGenerator.addParameter():

    linkGenerator.addParameter("deep_link_value", <TARGET_VIEW>);
    linkGenerator.addParameter("deep_link_sub1", <PROMO_CODE>);
    linkGenerator.addParameter("deep_link_sub2", <REFERRER_ID>);
    // Optional; makes the referrer ID available in the installs raw-data report
    linkGenerator.addParameter("af_sub1", <REFERRER_ID>);
    
    • deep_link_value: la experiencia de la aplicación a la que se debe enlazar profundamente al usuario referido.
    • deep_link_sub1: código promocional recibido por el invitado.
    • deep_link_sub2: identificador del referente. Se puede usar para recompensar al referente.
    • Nota: Si tienes el SDK V6.5.2 o inferior, debes codificar los valores de parámetros con caracteres especiales.
  5. Establece los parámetros de atribución. (Estos se mostrarán en los paneles de control de AppsFlyer y en los reportes de raw data).

    linkGenerator.setCampaign("summer_sale");
    linkGenerator.setChannel("mobile_share");
    
  6. Opcional Establece un dominio de marca para el enlace generado:

    linkGenerator.setBrandDomain("brand.domain.com");
    
  7. Crea una etiqueta LinkGenerator.ResponseListener para recuperar el enlace de invitación de usuario cuando esté disponible:

    LinkGenerator.ResponseListener listener = new LinkGenerator.ResponseListener() {
                @Override
                public void onResponse(String s) {
                    Log.d(LOG_TAG, "Share invite link: " + s);
                    // ...
                }
    
                @Override
                public void onResponseError(String s) {
                    Log.d(LOG_TAG, "onResponseError called");
                }
             
    };
    

    📘

    Nota

    Since SDK v6.9.0 LinkGenerator.ResponseListener replaced CreateOneLinkHttpTask.ResponseListener

  • onResponse() se invoca cuando la invitación de usuario se crea correctamente.
  • onResponseError() se invoca cuando falla la generación del enlace.
  1. pass listener to linkGenerator.generateLink():
    linkGenerator.generateLink(getApplicationContext(), listener);
    

Set the shortlink ID

OPCIONAL
The shortlink ID can be determined by the developer, by adding the paramter af_custom_shortlink a la LinkGenerator instance.

linkGenerator.addParameter("af_custom_shortlink", <value>);

Log invite link creation events

OPCIONAL
Para registrar el evento de creación de enlaces de invitación:
Registra la invitación con logInvite():

HashMap<String,String> logInviteMap = new HashMap<String,String>();
logInviteMap.put("referrerId", <REFERRER_ID>);
logInviteMap.put("campaign", "summer_sale");

ShareInviteHelper.logInvite(getApplicationContext(), "mobile_share", logInviteMap);

logInvite da como resultado un evento in-app af_invite .

📘

Nota

Si no quieres usar un canal, puedes usar logEvent en su lugar.

Set up UDL for user invite attribution

OPCIONAL
Para configurar UDL para la atribución de invitaciones de usuario:
Configura enlaces profundos unificados (UDL). En DeepLinkListener.onDeepLinking()recupera los parámetros de enlaces profundos creados durante el paso de generación de enlaces. En este ejemplo, se recuperan las siguientes propiedades:

  • deep_link_value, usando DeepLink.getDeepLinkValue()
  • deep_link_sub1, usando DeepLink.getStringValue()
  • deep_link_sub2, usando DeepLink.getStringValue()

Ver código: Java.

Recompensa a los referentes

OPCIONAL
En los siguientes escenarios, el usuario A invitó al usuario B a tu aplicación.

Reward referrers on install

Situación: el usuario B instala tu aplicación a través del enlace de invitación del usuario A.

El ID de usuario A está disponible en DeepLinkListener.onDeepLinking() y, en este ejemplo, se recupera usando DeepLink.getStringValue("deep_link_sub2"). Una vez que recuperes el ID, agrégalo a la lista de ID de referentes para las recompensas. Depende de ti cómo almacenar y recuperar esa lista.

Reward referrers for user actions

Escenario: el usuario B realiza una compra. Deseas recompensar al Usuario A, que inicialmente refirió al Usuario B a tu aplicación, por la acción.

Para recompensar al usuario A por la acción del usuario B:

  1. Recupera el ID de referencia del usuario A y agrégalo a uno de los parámetros de eventos in-app personalizables (por ejemplo, af_param_1):

     Map<String, Object> purchaseEventParameters = new HashMap<String, Object>();
     purchaseEventParameters.put(AFInAppEventParameterName.PARAM_1, <REFERRER_ID>);
     purchaseEventParameters.put(AFInAppEventParameterName.CURRENCY, "USD");
     purchaseEventParameters.put(AFInAppEventParameterName.REVENUE, 200);
     
     AppsFlyerLib.getInstance().logEvent(getApplicationContext(), purchaseEventParameters);
    
  2. En tu backend, recupera los datos del evento in-app

  3. Agrega los ID de referentes de usuarios encontrados a una lista de usuarios que se recompensarán.

  4. Cuando el usuario A inicie la aplicación, verifica si su ID de referente está en la lista de usuarios para ser recompensados y recompénsalo si es así.

📘

Nota

  • Los pasos 2 y 3 no los lleva a cabo el desarrollador móvil. El paso 4 depende de cómo se implementen los pasos 2 y 3.
  • Un evento de compra es solo un ejemplo. Esto se aplica a cualquier tipo de evento in-app.