Invitación de usuario de iOS

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. Esto se hace usando AppsFlyerLinkGenerator.
Para configurar la generación de enlaces de invitación:

  1. Asegúrate de importar AppsFlyerLib:

    import com.appsflyer.AppsFlyerLib;
    
  2. In AppDelegate, configura una plantilla de OneLink utilizando appInviteOneLinkID (El ID de la plantilla es proporcionado por el marketer):

    AppsFlyerLib.shared().appInviteOneLinkID = "H5hv" // Set the OneLink template ID for userinvitation links
    

    📘

    Nota

    • Asegúrate de configurar appInviteOneLinkID antes de llamar a start
    • La plantilla de OneLink debe estar relacionada con la aplicación.
  3. Llama a AppsFlyerShareInviteHelper.generateInviteUrl y pásalo a un AppsFlyerLinkGenerator y a un completionHandler:

    AppsFlyerShareInviteHelper.generateInviteUrl(
        linkGenerator: {
            (_ generator: AppsFlyerLinkGenerator) -> AppsFlyerLinkGenerator in
                generator.addParameterValue(<TARGET_VIEW>, forKey: "deep_link_value")
                generator.addParameterValue(<PROMO_CODE>, forKey: "deep_link_sub1")
                generator.addParameterValue(<REFERRER_ID>, forKey: "deep_link_sub2")
                // Optional; makes the referrer ID available in the installs raw-data report
                generator.addParameterValue(<REFERRER_ID>, forKey: "af_sub1")
                generator.setCampaign("summer_sale")
                generator.setChannel("mobile_share")
          		// Optional; Set a branded domain name:
          		generator.brandDomain = "brand.domain.com"
                return generator
        },
        completionHandler: {
            (_ url: URL?) -> Void in
                if url != nil {
                    NSLog("[AFSDK] AppsFlyer share-invite link: \(url!.absoluteString)")
                }        
                else {
                    print("url is nil")
                }
            }
    )
    

    Dependiendo del flujo de usuario que tú y el marketer quieran lograr, configura generator de la siguiente manera:

    • Establece parámetros de atribución usando establecedores.
    • Establece parámetros de enlaces profundos, usando AppsFlyerLinkGenerator.addParameterValue:
      • deep_link_value: la experiencia de la aplicación a la que se debe enlazar profundamente al usuario referido.
      • deep_link_sub1: un parámetro personalizable. En este ejemplo, se utiliza para pasar el código de promoción recibido por el invitado.
      • deep_link_sub2: identificador del referente. Se puede usar para recompensar al referente.
  4. En el completionHandler, comprueba si la URL se ha creado correctamente (url no nil), y recupera el enlace de invitación de usuario generado.

  5. Permite que los usuarios compartan enlaces generados. Por ejemplo, copialo en su portapapeles.

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.

generator.addParameterValue(<value>, forKey:"af_custom_shortlink")

Log invite link creation events

OPCIONAL
Para registrar el evento de creación del enlace de invitación:
Envía un evento que indique que un usuario ha generado un enlace de invitación usando logInvite:

AppsFlyerShareInviteHelper.logInvite(<CHANNEL>, parameters: [
    "campaign" : "summer_sale",
    "referrerId" : <REFERRER_ID>,
]);

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:

  1. Configura enlaces profundos unificados (UDL).

  2. In DeepLinkDelegate.didResolveDeepLinkrecupera 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.deeplinkValue
    • deep_link_sub1, usando DeepLink.clickEvent["deep_link_sub1"]
    • deep_link_sub2, usando DeepLink.clickEvent["deep_link_sub2"]

    Ver código: Swift.

  3. Una vez que recuperes el ID de refrente, depende de ti cómo se almacene y utilice.

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 referente del usuario A está disponible en el UDL didResolveDeepLink (en este ejemplo, bajo DeepLink.clickEvent["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 on in-app events

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 referente del usuario A y agrégalo a uno de los parámetros del evento in-app personalizables (por ejemplo, af_param_1):
    AppsFlyerLib.shared().logEvent(AFEventPurchase, 
      withValues: [
    		AFEventParamRevenue: 200,
    		AFEventParamCurrency:"USD",
            AFEventParam1: <REFERRER_ID>
      ]);
    
  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.