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:

  1. El usuario abre el sitio web.
  2. El usuario sigue el enlace al instalador del lanzador.
  3. El usuario descarga el instalador del lanzador con el enlace que contiene una contraseña de un solo uso.
  4. El usuario instala el lanzador.
  5. El lanzador recibe el valor del parámetro common_payload a través de la contraseña de un solo uso.
  6. El usuario pulsa en Jugar en el lanzador.
  7. 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.

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:

  1. El usuario abre el sitio web.
  2. El usuario pulsa en un enlace hacia el lanzador.
  3. El lanzador guarda el valor de los parámetros payload, common_payload y expires_jn de la URL.
  4. El usuario hace clic en Jugar en el lanzador.
  5. El lanzador comprueba la presencia y la expiración de los parámetros payload y common_payload:
    • Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros payload y 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 los argumentos payload y common_payload.

Cuando un usuario inicia el juego desde el lanzador, se desarrolla el siguiente flujo:

  1. El usuario abre el lanzador.
  2. El usuario pulsa Jugar en el lanzador.
  3. El lanzador comprueba la presencia y expiración del parámetro payload y common_payload:
    • Si la comprobación se realiza con éxito, el lanzador inicia el juego con los argumentos obtenidos de los parámetros payload y common_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 y common_payload.

Cómo conseguirlo

Para establecer una integración fluida entre el sitio web y el juego:

  1. Configure los ajustes en Cuenta del editor.
  2. Agregue un enlace a su sitio web.
  3. 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

  1. Abra su proyecto en Cuenta del editor.
  2. Haga clic en Launcher en el menú lateral.
  3. Busque el lanzador en el panel y haga clic en Edit launcher.
  4. En la sección Games, haga clic en Configure a la derecha de su juego.
  5. Vaya a la sección Builds.
  6. Vaya a la pestaña Executable files.
  7. 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.

Nota
Tras realizar este ajuste, los usuarios no podrán iniciar el juego sin recibir datos del sitio web del juego. Si faltan datos, se redirige al usuario al sitio web del juego para obtenerlos.

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ámetros payload y common_payload en formato tiempo Unix en milisegundos.
Nota
Le recomendamos que cifre los datos utilizando Base64 o urlencoder.org para transferirlos de forma segura como parámetros de URL.
Copy
Full screen
Small screen


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:

Copy
Full screen
Small screen
    game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
    
    ¿Te ha resultado útil este artículo?
    ¡Gracias!
    ¿Hay algo en lo que podamos mejorar? Mensaje
    Lo sentimos
    Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
    ¡Gracias por tu mensaje!
    Nos ayudará a mejorar tu experiencia.
    Última actualización: 22 de Enero de 2024

    ¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

    Informar de un problema
    Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
    Déjanos tu correo electrónico para que te podamos responder
    ¡Gracias por tu mensaje!