Integración sin fisuras del sitio web en el juego
Cómo funciona
La integración fluida entre la web y el juego le permite configurar el envío de datos desde su sitio web al juego en los parámetros de la URL. Puede transmitir el token de autorización de un usuario, los datos de una campaña de marketing u otra información.
Flujos del usuario
Cuando se implementa una integración sin fisuras entre la web y el juego existen los siguientes escenarios de usuario:
- Pulsar en un enlace para descargar el instalador del lanzador desde el sitio web.
- Pulsar en un enlace hacia el lanzador desde el sitio web.
- Iniciar el juego desde el lanzador.
Cuando un usuario pulsa en un enlace para descargar el instalador del lanzador desde el sitio web:
- El usuario abre el sitio web.
- El usuario sigue el enlace al instalador del lanzador.
- El usuario descarga el instalador del lanzador con el enlace que contiene una contraseña de un solo uso.
- El usuario instala el lanzador.
- El lanzador recibe el valor del parámetro
common_payload
a través de la contraseña de un solo uso. - El usuario pulsa en Jugar en el lanzador.
- El lanzador comprueba la presencia y expiración del parámetro
common_payload
:- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos del parámetro
common_payload
. - Si la comprobación no se realiza con éxito:
- Si la URL del sitio web está configurada en la Cuenta del Editor dentro del nombre del archivo ejecutable, el lanzador redirige al usuario a esa dirección.
- Si la URL del sitio web no está configurada en la Cuenta del editor dentro del nombre del archivo ejecutable, el lanzador inicia el juego sin el argumento
common_payload
.
- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos del parámetro
Cuando un usuario pulsa en un enlace que lleva al lanzador desde el sitio web y el lanzador ya se ha instalado, se desarrolla el siguiente flujo:
- El usuario abre el sitio web.
- El usuario pulsa en un enlace hacia el lanzador.
- El lanzador guarda el valor de los parámetros
payload
,common_payload
yexpires_jn
de la URL. - El usuario hace clic en Jugar en el lanzador.
- El lanzador comprueba la presencia y la expiración de los parámetros
payload
ycommon_payload
:- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros
payload
ycommon_payload
. - Si la comprobación no se realiza con éxito:
- Si la URL del sitio web está configurada en la Cuenta del Editor dentro del nombre del archivo ejecutable, el lanzador redirige al usuario a esa dirección.
- Si la URL del sitio web no está configurada en la Cuenta del editor dentro del nombre del archivo ejecutable, el lanzador inicia el juego sin los argumentos
payload
ycommon_payload
.
- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros
Cuando un usuario inicia el juego desde el lanzador, se desarrolla el siguiente flujo:
- El usuario abre el lanzador.
- El usuario pulsa Jugar en el lanzador.
- El lanzador comprueba la presencia y expiración del parámetro
payload
ycommon_payload
:- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros
payload
ycommon_payload
. - Si la comprobación no se realiza con éxito:
- Si se especifica una URL en la configuración de la Cuenta del editor, el lanzador redirige al usuario a esa URL.
- Si la URL del sitio web no está configurada en la Cuenta del editor dentro del nombre del archivo ejecutable, el lanzador redirige al usuario a esa dirección, el lanzador inicia el juego sin los argumentos
payload
ycommon_payload
.
- Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros
Cómo conseguirlo
Para establecer una integración fluida entre el sitio web y el juego:
- Configure los ajustes en Cuenta del editor.
- Agregue un enlace a su sitio web.
- Implemente el procesamiento de los datos recibidos en el parámetro de carga útil en el lado del juego.
Configuración de los ajustes en Cuenta del editor
- Abra su proyecto en Cuenta del editor.
- Haga clic en Launcher en el menú lateral.
- Busque el lanzador en el panel y haga clic en Edit launcher.
- En la sección Games, haga clic en Configure a la derecha de su juego.
- Vaya a la sección Builds.
- Vaya a la pestaña Executable files.
- Agregue el argumento
--x_payload_url
al campo Executable file name para cada sistema operativo. En el valor del argumento, transmita la URL del sitio web donde se encuentra el enlace o el botón. El valor debe codificarse utilizando Base64.
Por ejemplo, si el nombre del archivo ejecutable es game.exe
y la URL del sitio web del juego es http://example.com/start_play
, introduzca game.exe –x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=
en el campo Executable file.
Añadir un enlace al sitio web
Agregue un enlace o botón a su sitio web que abrirá la URL en el formato xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in>
, en el cual:
<launcher-id>
y<game-id>
- identificadores del lanzador y del juego que puede encontrar en la URL de su Cuenta del editor:https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>
.<payload>
- los datos que deben transmitirse al juego.<common_payload>
- los datos del usuario que deben transmitirse al lanzador, que son comunes para todos los juegos.<expires_in>
- el plazo de expiración de los datos transmitidos en los parámetrospayload
ycommon_payload
en formato tiempo Unix en milisegundos.
- javascript
function getAuthToken() {
return 'YOUR DATA HERE';
}
function getDeeplink(launcherID, gameID) {
const encodedPayload = btoa(getAuthToken());
const expiresIn = new Date();
expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
}
// Put that `href` to button or link address
const href = getDeeplink(123, 4567);
Integración en el lado del juego
El lanzador transmite los datos recibidos en el parámetro payload
como valor del argumento de línea de comandos –xsolla-payload
, como se muestra en el siguiente ejemplo. También comprueba la presencia y vida útil de los datos transmitidos en el parámetro common_payload
y los transmite como el valor del argumento de línea de comandos –xsolla-common-payload
, como se muestra en el siguiente ejemplo.
Ejemplo de inicio de un juego cuando los datos están cifrados usando Base64:
game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.