Cómo implementar un programa de referencia en aplicaciones móviles para Android y iPhone

10 minutos de lectura

avatar de usuario
james khoo

Tenemos una aplicación móvil que está disponible tanto en Google Play Store como en Apple AppStore, queremos implementar un programa de referencia para que más usuarios instalen y usen nuestra aplicación.

Aquí está la historia del usuario:

  • Cada nuevo usuario (por ejemplo, John) recibe un enlace de referencia único, donde puede compartir en FB/TW/correo electrónico o SMS.
  • Cuando el amigo de John hace clic en el enlace, se lo dirige a la base de AppStore respectiva en su dispositivo.
  • En el momento en que el amigo de John instale la aplicación y la abra, nuestro servidor debería recibir una notificación y sabremos que la referencia es de John, John será recompensado en consecuencia.

Hemos evaluado una serie de herramientas de seguimiento de instalación de aplicaciones móviles, la mayoría de las herramientas son el mejor uso en el editor/anuncio móvil.

Agradezco cualquier comentario, sugerencia

Saludos james

  • Branch.io Metrics podría ser útil. La documentación es deficiente, pero el servicio es un servicio de código de referencia decente.

    – constructor de carteras

    26 de junio de 2015 a las 0:55

  • @portfoliobuilder Estoy tratando de implementarlo pero parece que no puedo hacerlo bien, ¿tiene una muestra de trabajo? ¿O tal vez puedes echar un vistazo a mi pregunta? stackoverflow.com/questions/39181681/…

    – Juan Sardinha

    27 de agosto de 2016 a las 15:15

Estamos haciendo un tipo similar de sistema de referencia en nuestra aplicación que proporciona una cierta cantidad de Puntos de Recompensa al remitente (el que realmente compartió el enlace a la aplicación) en la instalación exitosa de la aplicación por parte del nuevo usuario (el que recibió el enlace).

Intentaré explicar nuestra implementación usando su escenario: Entonces, de acuerdo con su historia de usuario:

  • Cada nuevo usuario (por ejemplo, John) recibe un enlace de referencia único, que puede compartir con sus amigos mediante FB/TW/correo electrónico o SMS.

  • Cuando el amigo de John hace clic en el enlace, primero se le redirige a un Servlet que eventualmente lo redirige a la AppStore respectiva según su plataforma (Android/iPhone) para descargar la aplicación.

  • Tenga en cuenta que podemos averiguar la dirección IP, el agente de usuario y el modelo de dispositivo del usuario que hizo clic en el enlace mediante un Servlet.

  • Ya sabemos que el enlace de referencia pertenece a John y, por lo tanto, el servlet asigna la dirección IP, el agente de usuario y/o el modelo de dispositivo del amigo de John a la entrada de John en la base de datos.

  • En el momento en que el amigo de John instala la aplicación y la abre, la aplicación envía la dirección IP, el agente de usuario y/o el modelo del dispositivo al servidor.

  • El servidor comprueba la entrada con todos los usuarios para encontrar el remitente y, si lo encuentra, en nuestro caso John, John recibe la recompensa correspondiente.

Eso es todo. Implementamos esto en el último mes y aumentó nuestras descargas. Déjame saber si eso es útil.

  • Hola, Puru. Gracias por tu respuesta. Me interesa el punto 3. De algún modo, estás implementando un “método de toma de huellas dactilares del dispositivo”, pero la pregunta es: ¿la dirección IP + el agente de usuario + el modelo del dispositivo son suficientes para identificar un dispositivo único?

    – James Khoo

    7 de marzo de 2014 a las 16:02

  • ¿Qué sucede si cambia la dirección IP? Por ejemplo, si alguien hizo clic en el enlace de referencia mientras estaba en 3G, pero ejecuta la aplicación más tarde por primera vez en WiFi.

    – Jowie

    31 de julio de 2014 a las 11:02

  • Branch – branch.io – ha construido esta solución de principio a fin y la regala de forma gratuita. Incluso crearon un sistema de recompensa de créditos que le permite otorgar créditos al remitente y al árbitro en función de las acciones realizadas por el remitente.

    usuario2872082

    13 de enero de 2015 a las 15:54


  • Puede leer sobre la precisión de las huellas dactilares y los casos extremos aquí dev.branch.io/recipes/matching_accuracy — le permite personalizar la experiencia de toma de huellas dactilares en función de la precisión que necesita que sea (por ejemplo, modificar el tiempo antes de que caduque la huella dactilar). @JamesKhoo

    – acingersoll

    7 julio 2015 a las 0:33

  • ¿Tenemos alguna otra opción ya que esta respuesta se publicó en 2014? Apple podría proporcionar una mejor solución para la tienda de aplicaciones.

    –Sharad Paghadal

    1 de agosto de 2018 a las 4:48

Si alguien todavía está buscando una solución a esta pregunta. Leí muchos blogs y documentos sobre el mismo problema y llegué a la siguiente conclusión:

Dirección IP + Agente de usuario + Modelo de dispositivo no es suficiente para identificar un dispositivo de forma única. Entonces, creo que será mejor usar enlaces dinámicos. Puede crear enlaces dinámicos que contengan una identificación única. Y esos datos sobrevivirán a la redirección de URL a la tienda de aplicaciones e incluso después de la instalación, su aplicación puede obtener la identificación única del enlace dinámico. Firebase de Google se puede usar para crear enlaces dinámicos: –

https://firebase.google.com/docs/dynamic-links/

O si desea utilizar una solución lista para usar, puede consultar branch.io

  • ¿Tienes alguna muestra? puede compartir si hay alguno, por favor.

    – Vishnu Prabhu

    19 de junio de 2018 a las 6:50

  • Usamos branch.io para nuestra solución. Eso se maneja en el lado de la aplicación. Los documentos de Firebase dicen que solo funciona con el inicio de sesión de Google.

    – Chandan Kumar

    19 de junio de 2018 a las 8:54

  • ¿Puede compartir el enlace, que dice que solo funcionará con el inicio de sesión de Google? Me ayudará a convencer a mi jefe. ¿Branch.io también es gratuito o de pago?

    – Vishnu Prabhu

    20 de junio de 2018 a las 8:36

  • Firebase está trabajando con algunos casos de esquina. Puedes ver los documentos para más detalles. firebase.google.com/docs/dynamic-links/use-cases/… Y branch.io es gratuito hasta cierto número de usuarios y luego se paga

    – Chandan Kumar

    21 de junio de 2018 a las 9:34


  • Parece que firebase es el único SDK conocido con tales capacidades.

    – Umar Farooque

    20 de enero de 2020 a las 16:55

avatar de usuario
lxknvlk

Androide

En Android, puede crear un oyente de transmisión de instalación, donde puede obtener y guardar la parte de referencia del enlace a SharedPreferences

https://play.google.com/store/apps/details?id=com.example.app&referrer=example_referral_code_aquí

Para este cheque
Android: ¿es posible obtener la referencia de instalación mediante programación?
y
Obtener referencia después de instalar la aplicación de Android Market

y

https://developer.android.com/google/play/installreferrer/library.html

iOS

Por ahora (enero de 2016) no es posible obtener el código de referencia de instalación en su aplicación, como con Android.

Las opciones que tenía para ios eran:

  1. marcos de usuario/servicios de terceros como alau.me
  2. una solución con la toma de huellas dactilares, similar a lo que sugiere Puru Pawar
  3. simplemente haga que el usuario ingrese el código de referencia dentro de su aplicación

Descargo de responsabilidad: no estoy satisfecho con la respuesta original aceptada, estoy proporcionando una solución alternativa a este hilo “popular”.

En Androide, esto no es un problema en absoluto. Google le permitirá acceder al parámetro de referencia enviado en el momento de la instalación mediante el registro de un receptor, también puede aprovechar su instalar la API de referencia.

Para iOS es un poco más complicado ya que no es compatible oficialmente. Como se propone aquí, puede tomar huellas dactilares, pero eso es engorroso y conlleva un alto grado de inexactitud. Hay dos soluciones más elegantes que encontré:

  1. Seguimiento basado en cookies que se explica en detalle aquí
  2. URL copiada al portapapeles (Firebase parece tener un enfoque tanto de portapapeles como de cookies, pero eso se basa en una observación personal, no es una fuente oficial).
    • Cuando el usuario visita su página web (es decir: example.com/invite/123), muestre una página web antes de redirigir a la App Store.
    • En esa página, haga que el usuario presione un botón para que pueda copiar una cadena en el portapapeles/mesa de trabajo con document.execCommand('copy') después de haber seleccionado alguna cadena que reside en una entrada oculta a través de focus() y setSelectionRange()
    • Después de la instalación, cuando el usuario llega a la aplicación, puede hacer dos cosas:
      1. Capture el contenido del portapapeles/pasaporte a través de UIPasteboard.general.string (Swift) y hacer algunas llamadas de análisis o API
      2. Redirigir al usuario (a través de su navegador predeterminado para evitar que las Cookies no estén presentes) a una página en el mismo dominio que en el enlace inicial (es decir: mydomain.com/retrieve) para que la página reciba las cookies configuradas inicialmente (en el paso 1 .) compartido suavemente por el navegador durante la visita. Luego puede redirigir al usuario de regreso a su enlace original ya que la aplicación ahora está instalada y Universal Linking ahora funcionará según lo previsto.

avatar de usuario
Teraiya Mayur

Archivo Gradle

 implementation 'com.android.installreferrer:installreferrer:1.0'

PONER CÓDIGO EN ACTIVIDAD DONDE NECESITA RECIBIR CÓDIGO DE REFERENCIA

 InstallReferrerClient mReferrerClient;

 mReferrerClient = InstallReferrerClient.newBuilder(this).build();

 mReferrerClient.startConnection(new InstallReferrerStateListener() {
 @Override
 public void onInstallReferrerSetupFinished(int responseCode) {
            switch (responseCode) {
                case InstallReferrerClient.InstallReferrerResponse.OK:
                    // Connection established
                    try {
                        ReferrerDetails response = 
 mReferrerClient.getInstallReferrer();
                        if (!response.getInstallReferrer().contains("utm_source"))
                            edtPRferelCode.setText("" + 
 response.getInstallReferrer());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    mReferrerClient.endConnection();
                    break;
                case 
 InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                    // API not available on the current Play Store app
                    break;
                case 
 InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                    // Connection could not be established
                    break;
            }
        }

        @Override
        public void onInstallReferrerServiceDisconnected() {
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
        }
    });

EJEMPLO COMPARTIR ENLACE

https://play.google.com/store/apps/details?id=com.yourpackage&referrer=9BE46300

  • La respuesta más simple que encontré entre todas. Sencillo y sin ningún problema. Esto simplemente me ayudó mucho. Gracias.

    – Rumit Patel

    20 de marzo de 2019 a las 13:30

  • ¿Cómo puedo probar esto?

    – Yogesh Choudhary Paliyal

    8 de abril de 2020 a las 13:07

avatar de usuario
PlataformaCitas

Una alternativa es permitir que sus usuarios actuales creen un código único, por ejemplo, David123 o HenryABC. Comparten su código (que es fácil de recordar ya que es personal). Dentro de su aplicación, proporciona un cuadro de referencia en el que un nuevo usuario ingresa el código para desbloquear funciones adicionales. De esta manera, puede rastrear y no tiene que preocuparse por una huella digital. El gran problema con el método de huellas dactilares es que iOS no es lo suficientemente único y las redes móviles comparten direcciones IP. Por lo tanto, es probable que alguien con un iPhone 6s en Londres en EE tenga la misma huella digital que cientos de otras personas.

  • La respuesta más simple que encontré entre todas. Sencillo y sin ningún problema. Esto simplemente me ayudó mucho. Gracias.

    – Rumit Patel

    20 de marzo de 2019 a las 13:30

  • ¿Cómo puedo probar esto?

    – Yogesh Choudhary Paliyal

    8 de abril de 2020 a las 13:07

avatar de usuario
Comunidad

Se puede hacer usando Medición de campañas de Google donde en utm_source solo proporcione un número/cadena único para cada usuario que recibirá cuando el amigo del usuario instale la aplicación como lo hará Google Play Store transmisión después de la instalación. Consulte esta pregunta.

¿Ha sido útil esta solución?