Promocionar tus apps con Facebook y Messenger en Android

Casi todas las apps que usamos alguna vez tienen una opción para invitar a tus amigos a usarla. Hay muchos métodos que permiten hacer esta operación en Android, pero si quieres aprovechar al máximo las posibilidades de cada plataforma los métodos genéricos dejan de ser útiles.

En el caso de Facebook y Facebook Messenger lo más habitual es usar el SDK de Facebook ya que en muchos casos ya lo estás usando para aprovechar la funcionalidad de Facebook Connect. Pero vamos a ver las distintas maneras que se pueden promocionar las apps en Facebook.

1. Compartir genérico de android

Android permite compartir texto mediante sus Intents, este método te permite enviar un texto predefinido y un enlace concatenado, no es el mejor método pero funciona para todas las plataformas. Un ejemplo sería:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Texto predefinido para compartir " + enlaceACompartir);
intent.setType("text/plain");
startActivity(intent);

Con este código el usuario puede escoger qué aplicación quiere usar para compartir el contenido, incluidos Facebook y Facebook Messenger si los tiene instalados. Como en ambos casos la aplicación hace un preview de los enlaces si tienes bien puestos los meta tags open graph puede resultar un contenido atractivo para el receptor.

2. Compartir enlaces en Facebook (ShareLinkContent)

El SDK de Facebook incluye un tipo de contenido para compartir mediante su clase abstracta ShareContent que se llama ShareLinkContent y que como el propio nombre indica permite compartir enlaces a otros usuarios. Con este mismo tipo de contenido podemos enviar datos a Facebook y Facebook Messenger, en incluso si el usuario no tiene instaladas las aplicaciones hará un fallback a su versión web.

Facebook

En el caso de Facebook hay que usar la clase ShareDialog para compartir el ShareLinkContent, por ejemplo:

if (ShareDialog.canShow(ShareLinkContent.class)) {
    ShareDialog shareDialog = new ShareDialog(this);
    ShareLinkContent facebookContent = new ShareLinkContent.Builder()
        .setContentUrl(Uri.parse(url))
        .setContentTitle(title)
        .setContentDescription(content)
        .setImageUrl(Uri.parse(imageUrl))
        .build();
    shareDialog.show(facebookContent);
}

Este código abrirá la app de Facebook y permitirá compartir el contenido debidamente formateado.

Facebook Messenger

En el caso de Facebook Messenger hay un poco de confusión, en gran parte porque Facebook no documenta correctamente el SDK… como siempre. Hay dos métodos para compartir con Facebook Messenger. El primero mediante la clase MessengerUtils que permite compartir imágenes, audio o vídeo a través de Messenger pero solo ese tipo contenido. No hay que confundir la url externa, que sirve como fallback para la url interna del contenido o por si hay que descargarlo obligatoriamente desde el enlace, con un enlace que lleve a una página.

ShareToMessengerParams shareToMessengerParams =
                ShareToMessengerParams.newBuilder(Uri.parse(urlInterna), "image/jpeg")
                        .setExternalUri(urlExterna)
                        .build();

MessengerUtils.shareToMessenger(
        this,
        REQUEST_CODE_SHARE_TO_MESSENGER,
        shareToMessengerParams);

El segundo sistema es parecido al de Facebook pero usando otra clase para enviar el contenido ShareLinkContent, la clase MessageDialog permite abrir la app Messenger y enviar este contenido a otro usuario. Ojo con la imagen de preview que si la página que compartes tiene los tags open graph pueden sobreescribir la imagen que vea el usuario en el mensaje recibido.

if (MessageDialog.canShow(ShareLinkContent.class)) {
            ShareLinkContent shareLinkContent = new ShareLinkContent.Builder()
                .setContentTitle(titulo)
                .setContentDescription(descripcion)
                .setContentUrl(Uri.parse(urlContenido))
                .setImageUrl(Uri.parse(urlPreview))
                .build();
            MessageDialog dialog = new MessageDialog(this);
            dialog.show(shareLinkContent);

3. Invitación a probar aplicaciones en Facebook (AppInvites)

Las invitaciones para probar aplicaciones en Facebook son un sistema interesante para promocionar las apps en Facebook ya que permiten en un solo click ir a la app store de turno e instalar la app desde la propia app de Facebook. Además puedes hacer tracking de los usuarios que llegan a través de estas invitaciones por si quieres montar un programa de referidos. El código sería algo así:

AppInviteContent content = new AppInviteContent.Builder()
    .setApplinkUrl(appLinkUrl)
    .setPreviewImageUrl(previewImageUrl)
    .build();
AppInviteDialog.show(this, content);

Y Facebook enviará a los usuarios que se indique una invitación con un aspecto muy atractivo. Recuerda que en cualquier caso la URL de destino debe implementar los tags open graph para que Facebook envie correctamente a la app store que toque en cada caso.

Estos métodos ayudan mucho a la promoción de apps, pero la parte de tracking es otro mundo por lo que proximamente hablaremos de Branch.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *