Para ampliar el alcance de tus agentes de Business Messages, puedes agregar puntos de entrada de conversación en tus sitios web con el widget de Business Messages.
El widget Business Messages solo admite dispositivos móviles que ejecutan Android 5+. No se admiten otros sistemas operativos móviles ni entornos de escritorio.
Cómo agregar un widget de Business Messages a un sitio web
Para habilitar las conversaciones desde un sitio web, carga la biblioteca de JavaScript de Business Messages, configura la posición del widget en la página y especifica los valores de contexto dentro del widget.
Para obtener una lista de las funciones, las propiedades y los eventos de disponibilidad, consulta el widget de Business Messages. Consulta la guía de estilo del widget de Business Messages para ver las recomendaciones de estilo y uso.
Crear un widget
Actualiza los siguientes valores a fin de crear un widget de Business Messages para insertar en tu sitio web.
Valor | Descripción |
---|---|
LAYOUT | Cómo aparece el botón en tu sitio web. Puede ser button , floating , inline o advanced . Para usar tus propios estilos, usa advanced , copia la hoja de estilo en tu página web y modifícala según sea necesario. |
AGENT_ID | Tu ID del agente. |
BUTTON_TEXT | El texto que deseas que se muestre en el botón. |
<script crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js"></script>
Widget de ejemplo
Este widget se genera con el siguiente código:
<script crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js"></script>
Cómo personalizar la integración del widget de Business Messages
Carga la biblioteca JavaScript
Para cargar la biblioteca de Business Messages de JavaScript, copia el siguiente código y pégalo de inmediato en la etiqueta <head>
de cada página en la que desees mostrar un widget de Business Messages. Solo necesitas una inclusión de la biblioteca de JavaScript por página.
<!-- Global Business Messages widget library reference - Business Messages -->
<script crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js?cb=callback">
</script>
El fragmento descarga y carga la biblioteca JavaScript, que inicializa los elementos de página existentes con un atributo data-bm-widget-agent-id
. La biblioteca de JavaScript convierte los elementos identificados de la página en elementos en los que se puede hacer clic y que cargan la superficie de conversación de Business Messages cuando se presiona.
El parámetro opcional cb
contiene el nombre de una función a la que se llama automáticamente una vez que se carga la biblioteca de JavaScript.
Configurar la ubicación del widget
Cuando se carga la biblioteca JavaScript de Business Messages, se analiza el sitio web en busca de elementos con un atributo data-bm-widget-agent-id
y los convierte en widgets que se pueden presionar. Cada elemento que deseas convertir en un widget debe incluir un atributo data-bm-widget-agent-id
con un valor correspondiente al ID de agente para el agente iniciado.
Ejemplo: Definiciones de widgets
<!-- Example div element that converts into a Business Messages widget -->
<div data-bm-widget-agent-id="myagentid">
Click for Business Messages
</div>
<!-- Example button element that converts into a Business Messages widget -->
<button data-bm-widget-agent-id="myagentid">
Click for Business Messages
</button>
Pasa valores de contexto
Para configurar el contexto del widget y pasarlo a tu webhook, incluye el atributo opcional data-bm-widget-context
en el elemento HTML que contiene el atributo data-bm-widget-agent-id
. Especifica un valor de string para data-bm-widget-context
. Los mensajes enviados a tu webhook incluyen el valor de contexto.
data-bm-widget-context
puede tener cualquier valor, como un valor relevante en el lugar en el que se muestra el widget en el tiempo de ejecución en la página. En los siguientes ejemplos, el valor del atributo de "eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==" es una string JSON codificada en base64 de {"product":"dryer","offer-code":"ASDADSA"}
.
data-bm-widget-context
tiene un límite de 512 bytes.
Ejemplo: Definiciones de widgets con contexto
<!-- Example div element that converts into a Business Messages widget -->
<div
data-bm-widget-agent-id="myagentid"
data-bm-widget-context="eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==">
Click for Business Messages
</div>
<!-- Example button element that converts into a Business Messages widget -->
<button
data-bm-widget-agent-id="myagentid"
data-bm-widget-context="eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==">
Click for Business Messages
</button>
Sitio web de muestra
En el siguiente ejemplo, se carga la biblioteca JavaScript de Business Messages dentro de la etiqueta <head>
, que, luego, escanea automáticamente la página HTML y convierte "myagentid" en widgets de Business Messages.
<html>
<head>
<script
crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js">
</script>
</head>
<body>
This is a test widget:
<div
data-bm-widget-agent-id="myagentid"
data-bm-widget-context="eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==">
Click for Business Messages
</div>
Click it.
And this is a widget:
<button
data-bm-widget-agent-id="myagentid"
data-bm-widget-context="VGhpcyBpcyBhIGJ1dHRvbiB0ZXN0Lgo=">
Click for Business Messages
</button>
</body>
</html>
Inicialización de widgets programáticos
Para un control más detallado de tu configuración, puedes optar por inicializar tu widget de manera programática. Para inicializar un elemento de manera programática, llama a bmwidget.init
después de que se cargue la biblioteca de JavaScript de Business Messages. Esta forma de inicialización no requiere que marques elementos con el atributo data-bm-widget-agent-id
.
<head> <!-- Global Business Messages widget library reference - Business Messages --> <script crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js?cb=initWidget"> </script> <script type="text/javascript"> // Convert HTML element with ID = myCustomButton into a Business Messages widget function initWidget() { window.bmwidget.init(document.getElementById('myCustomButton'), { 'agentId': 'myagentid', 'context': 'eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==' }); }; </script> </head>
Cómo verificar la compatibilidad de tus dispositivos
Usa window.bmwidget.supported
para verificar la compatibilidad de Business Messages con un dispositivo. En el siguiente ejemplo, se comprueba la compatibilidad de los dispositivos antes de inicializar el elemento HTML con el ID "myCustomButton" como un widget de Business Messages.
<head> <!-- Global Business Messages widget library reference - Business Messages --> <script crossorigin="use-credentials" src="https://businessmessages.google.com/widget/v2/js?cb=initWidget"> </script> <script type="text/javascript"> // Convert HTML element with ID = myCustomButton into a Business Messages widget function initWidget() { // Check that the user has a supported device if (window.bmwidget.supported) { window.bmwidget.init(document.getElementById('myCustomButton'), { 'agentId': 'myagentid', 'context': 'eyJwcm9kdWN0IjoiZHJ5ZXIiLCJvZmZlci1jb2RlIjoiQVNEQURTQSJ9Cg==' }); } }; </script> </head>
Inicialización de widgets para aplicaciones de una sola página
En el caso de las aplicaciones para aplicaciones de una sola página, en las que el atributo data-bm-widget-agent-id
se crea en el entorno de ejecución, la biblioteca JavaScript de Business Messages expone un objeto global window.bmwidget
.
Cuando se agregue un nuevo elemento a la página, llama a window.bmwidget.scan()
para inicializarlo como un widget de Business Messages.
window.bmwidget.scan();
Llama a window.bmwidget.scan()
en la devolución de llamada de actualización del DOM para asegurarte de que el atributo data-bm-widget-agent-id
se vuelva a inicializar cuando la página cambie de estado.
Ejemplo de Angular
El siguiente código inicializa window.bmwidget.scan()
durante la devolución de llamada de carga de componentes en Angular.
import { Component, OnInit} from '@angular/core'; export class AppComponent implements onInit { ngOnInit() { // Initialize tag on re-render window.bmwidget.scan(); } }
Ejemplo de React
El siguiente código inicializa la función window.bmwidget.scan()
durante la renderización de un elemento en React.
import React, { useState, useEffect } from 'react'; function WrapperComponent() { ... useEffect(() => { // Initialize on re-render window.bmwidget.scan(); }); return (<div><button data-bm-widget-agent-id="myagentid">Chat with us</button></div>); }
Próximos pasos
Ahora que integraste un widget de Business Messages con tu sitio web, puedes iniciar conversaciones de Business Messages desde tu sitio web y recibir valores de contexto específicos del widget en mensajes de los usuarios.