Cómo establecer vínculos directos a apps desde tu agente de RBM

En las apps para dispositivos móviles, los vínculos directos permiten que los usuarios vayan directamente al contenido de una app. Si no hubiera vínculos directos, si compartes una camisa que encontraste en la app de una tienda minorista con tu amigo, el vínculo que le envíes lo redireccionaría a su navegador o a Play Store, donde tendría que instalar o abrir la app y, luego, buscar el contenido. Ninguna de las situaciones ofrece una experiencia del usuario óptima. Con los vínculos directos, el vínculo lleva a tu amigo a la camisa exacta que encontraste en la app de venta minorista.

En este documento, aprenderás a usar los vínculos directos para crear experiencias enriquecidas y atractivas para los usuarios de tu RBM.

Cómo llevar a un usuario de RBM a una app

Un vínculo directo es simplemente un vínculo a una app. Tu agente de RBM puede abrir una app que está instalada en el teléfono de un usuario con una OpenUrlAction, en la que la URL es un vínculo directo configurado para la app que quieres invocar. Obtén más información en Cómo crear vínculos directos al contenido de la app.

Consulta el siguiente ejemplo. Para abrir el podcast de Google Cloud en la app de Google Podcasts, se puede crear una OpenUrlAction con el URI:

https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0

Muchos productos de Google están configurados para admitir vínculos directos que también funcionan como URLs web, incluidos YouTube y Google Maps.

Para activar cualquiera de estas apps desde un agente, debemos especificar este valor como la URL en una OpenUrlAction. En el siguiente JSON de muestra, se especifica una tarjeta enriquecida de RBM con tres acciones de URL abiertas, cada una con vinculación directa a una app diferente.

{
    "contentMessage":{
        "richCard":{
            "standaloneCard":{
                "cardOrientation":"VERTICAL",
                "cardContent":{
                    "title":"Did you know that you can open apps from an RBM agent?",
                    "description":"",
                    "suggestions":[
                        {
                            "action":{
                                "text":"Google Cloud Podcast",
                                "postbackData":"podcast_tap",
                                "openUrlAction":{
                                    "url":"https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1JvYkNlc3Rlcm5pbm8&nord=0"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"YouTube Video",
                                "postbackData":"youtube_tap",
                                "openUrlAction":{
                                    "url":"https://www.youtube.com/embed/xSE9Qk9wkig"
                                }
                            }
                        },
                        {
                            "action":{
                                "text":"Google Maps",
                                "postbackData":"maps_tap",
                                "openUrlAction":{
                                    "url":"https://goo.gl/maps/ToMSdr4PYX62"
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}

Cuando esta carga útil JSON se renderiza en el cliente de RCS de un usuario, el ícono de la acción sugerida coincide con la app con vinculación directa. Si presionas cualquiera de las acciones sugeridas, se inicia la app correspondiente directamente en el contenido codificado en la URL.

URLs sugeridas con íconos de apps

¿Por qué lo harías?

Existen varios motivos por los que se recomienda agregar un vínculo directo a una aplicación.

Autenticación

Si tu agente trata información potencialmente sensible, una forma de protegerlo es mediante un vínculo directo a tu app para autenticar al usuario mediante la huella dactilar, el acceso o cualquier otro medio. Una vez que el usuario se autentique correctamente, puedes hacer un seguimiento de la autenticación del servidor y volver a dirigir al usuario al agente activando un nuevo mensaje de RBM. Si envías mensajes de seguimiento potencialmente sensibles, puedes verificar el servidor para asegurarte de que el usuario esté autenticado. De lo contrario, puedes volver a enviarlas a la app para que renueve su token de autenticación.

Compatibilidad con casos de uso complejos

Los agentes de RBM son excelentes para las interacciones conversacionales, pero las apps pueden servir mejor para algunos casos de uso. Por ejemplo, si tienes una empresa de muebles y creaste una experiencia de realidad aumentada para que los usuarios puedan probar muebles en sus casas (consulta la siguiente imagen), tu caso de uso solo puede ser compatible con una app.

En estas situaciones, tiene sentido dirigir a los usuarios de RBM a tu app para que realicen algunas funciones. Tu app siempre puede volver a llevar al usuario a la conversación de RBM activando un nuevo mensaje del agente.

Vínculo directo a la aplicación Aplicación con vínculo directo

Facilita el pago

Puedes admitir pagos con una app de terceros mediante vínculos directos.

Por ejemplo, supongamos que deseas admitir transferencias de dinero a través de la ficticia empresa de pagos AcmePay. Cuando investigaste en línea, descubriste que AcmePay admite la vinculación directa con su propia estructura de URI única que te permite pasar valores para los destinatarios, el importe y una nota con parámetros de cadena de consulta.

Con este conocimiento, tu agente debe crear una OpenUrlAction con el URI de AcmePay parametrizado especificado para la parte de URL de la acción sugerida.

acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!

Una vez que el destinatario del mensaje de RBM presiona la acción sugerida, la app de AcmePay se inicia directamente en la pantalla de transacción con los valores pasados ya completados.

¿Qué sucede si la app no está instalada?

Si una app no está instalada en el dispositivo de un usuario, el comportamiento de los vínculos directos depende de la estructura del URI que se pasa a OpenUrlAction. Si al menos una app del dispositivo puede reconocer el URI (por ejemplo, Chrome reconoce las URLs que comienzan con "http://"), la acción sugerida se muestra como de costumbre en esa app. Cuando el usuario presiona la acción, el URI se abre en la app que reconoce la estructura del URI.

Si eres el desarrollador de la app, es ventajoso establecer vínculos directos con URIs que comienzan con "http://" y apuntan a un dominio que te pertenezca, ya que Chrome puede dirigir al usuario a una página web como acción de resguardo. En la página web, puedes dirigir al usuario a que descargue la app o a que realice cualquier otra acción que consideres adecuada para tu caso de uso.

Si el URI usa una estructura personalizada que ninguna app del dispositivo reconoce, la acción sugerida no se renderizará en tu mensaje de RBM.

Para asegurarte de que siempre aparezcan tus acciones sugeridas, puedes usar una URL propia y hacer que la página web redireccione el navegador a un URI personalizado que inicie la app. Si la app existe en el dispositivo, se inicia según lo previsto. De lo contrario, el usuario permanecerá en la página web, donde puedes dirigirlo según sea necesario para tu caso de uso.

A continuación, se muestra un ejemplo de cómo hacerlo con JavaScript. La secuencia de comandos intenta redireccionar al usuario a la app de AcmePay, pero si esa app no está instalada, la secuencia de comandos redirecciona al usuario a Google Play Store para que la descargue.

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0" />
    <title>Acme Pay</title>

    <script type="text/javascript">
    window.onload = function() {
       // Launch Acme Pay app for existing users
       window.location = 'acmepay://paycharge?recipients=Jane+Smith&amount=10&note=Money+For+You!';

       // Redirect to Acme Pay app download for new users
       setTimeout("window.location = 'https://play.google.com/store/apps/details?id=com.acmepay.android';", 1000);
    }
    </script>
</head>
<body>
    <h1>Redirecting…</h1>
</body>
</html>

Conclusión y resumen

Puedes usar la acción sugerida OpenUrlAction para establecer vínculos directos a apps que te pertenecen o a apps que deseas activar para ayudar a que tus usuarios participen. Mediante los vínculos directos, puedes proporcionar una experiencia enriquecida y atractiva a tus usuarios o seguridad más mejorada para compartir contenido sensible.

¡Buena suerte y que disfrutes programando!