원활한 웹-투-게임 통합

작동 방식

원활한 웹-투-게임 통합을 통해 URL 매개변수에서 웹사이트의 데이터를 게임으로 전송하도록 구성할 수 있습니다. 사용자의 인증 토큰, 마케팅 캠페인 데이터 또는 기타 정보를 전송할 수 있습니다.

사용자 절차

원활한 웹-투-게임 연동을 구현하는 사용자 시나리오는 다음과 같습니다.

  • 링크를 클릭하여 웹사이트에서 런처 인스톨러를 다운로드하기
  • 웹사이트에서 런처로 연결되는 링크 클릭하기
  • 런처에서 게임 시작하기

사용자가 웹사이트에서 런처 인스톨러를 다운로드하는 링크를 클릭한 경우:

  1. 사용자가 웹사이트를 엽니다.
  2. 사용자가 링크를 따라 런처 인스톨러로 이동합니다.
  3. 사용자가 일회용 암호가 포함된 링크를 통해 런처 인스톨러를 다운로드합니다.
  4. 사용자가 런처 인스톨러를 설치합니다.
  5. 런처가 일회용 암호를 통해 common_payload 매개 변수 값을 수신합니다.
  6. 사용자가 런처에서 플레이를 클릭합니다.
  7. 런처가 common_payload 매개 변수의 존재 여부와 만료 여부를 확인합니다.
    • 검사가 성공적으로 완료되면 런처가 common_payload 매개 변수에서 얻은 인수로 게임을 시작합니다.
    • 검사가 실패로 끝나면 다음과 같이 진행됩니다.
      • 실행 파일 이름 내 관리자 페이지에 웹사이트 URL이 구성되어 있으면 런처가 사용자를 해당 주소로 리디렉션합니다.
      • 실행 파일 이름 내 관리자 페이지에 웹사이트 URL이 구성되어 있지 않으면 런처가 common_payload 인수 없이 게임을 시작합니다.

사용자가 웹사이트에서 런처로 연결되는 링크를 클릭하고 런처가 이미 설치되어 있는 경우 다음과 같은 절차대로 작업이 진행됩니다.

  1. 사용자가 웹사이트를 엽니다.
  2. 사용자가 런처 링크를 클릭합니다.
  3. 런처가 URL로부터 payload, common_payloadexpires_jn 매개 변수의 값을 저장합니다.
  4. 사용자가 런처에서 플레이를 클릭합니다.
  5. 런처가 payloadcommon_payload 매개 변수의 존재 여부와 만료 여부를 확인합니다.
    • 검사가 성공적으로 완료되면 런처가 payloadcommon_payload 매개 변수에서 얻은 인수로 게임을 시작합니다.
    • 검사가 실패로 끝나면 다음과 같이 진행됩니다.
      • 실행 파일 이름 내 관리자 페이지에 웹사이트 URL이 구성되어 있으면 런처가 사용자를 해당 주소로 리디렉션합니다.
      • 실행 파일 이름 내 관리자 페이지에 웹사이트 URL이 구성되어 있지 않으면 런처가 payloadcommon_payload 인수 없이 게임을 시작합니다.

사용자가 런처에서 게임을 실행하면 다음과 같은 절차대로 작업이 진행됩니다.

  1. 사용자가 런처를 엽니다.
  2. 사용자가 런처에서 플레이를 클릭합니다.
  3. 런처가 payloadcommon_payload 매개 변수의 존재 여부와 만료 여부를 확인합니다.
    • 검사가 성공적으로 완료되면 payloadcommon_payload 매개 변수에서 얻은 인수로 게임을 시작합니다.
    • 검사가 실패로 끝나면 다음과 같이 진행됩니다.
      • 관리자 페이지 설정에 URL이 지정되어 있으면 런처가 사용자를 해당 URL로 리디렉션합니다.
      • 실행 파일 이름 내 관리자 페이지에 웹사이트 URL이 구성되어 있지 않은 경우 런처가 사용자를 해당 주소로 리디렉션하며, 런처가 payloadcommon_payload 인수 없이 게임을 시작합니다.

획득 방법

원활한 웹-투-게임 통합 설정 방법:

  1. 관리자 페이지에서 설정을 구성합니다.
  2. 웹사이트에 링크를 추가합니다.
  3. 게임 측에서 페이로드 매개변수에서 수신한 데이터의 처리를 구현합니다.

관리자 페이지에서 설정 구성하기

  1. 관리자 페이지에서 프로젝트를 엽니다.
  2. 사이드 메뉴에서 런처를 클릭합니다.
  3. 대시보드에서 런처를 찾아 런처 편집을 클릭합니다.
  4. 게임 섹션에서 게임 오른쪽에 있는 설정을 클릭합니다.
  5. 빌드 섹션으로 이동합니다.
  6. 실행할 수 있는 파일 탭으로 이동합니다.
  7. 각 운영 체제에 대해 실행할 수 있는 파일 이름 필드에 --x_payload_url 인수를 추가합니다. 인수 값에서 링크 또는 버튼이 위치한 웹사이트 URL을 전달합니다. 이 값은 Base64 값을 사용하여 인코딩해야 합니다.

예를 들어 실행할 수 있는 파일 이름이 game.exe이고 게임 웹사이트 URL이 http://example.com/start_play이면 실행할 수 있는 파일 이름 필드에 game.exe –x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=를 입력합니다.

알림
이 설정을 완료하면 사용자는 게임 웹사이트에서 데이터를 받지 않고는 게임을 실행할 수 없습니다. 데이터가 없는 경우 데이터를 구하기 위해 게임 웹사이트로 사용자를 리디렉션합니다.

웹사이트에 xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in> 형식으로 URL을 여는 링크나 버튼을 추가합니다.

  • 여기서 <launcher-id><game-id> - https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>와 같이 관리자 페이지의 URL에서 찾을 수 있는 런처 및 게임의 식별자입니다.
  • <payload> - 게임에 전달해야 하는 데이터입니다.
  • <common_payload> - 런처에 전달해야 하는 사용자 데이터로, 모든 게임에 공통으로 적용됩니다.
  • <expires_in> - 유닉스 시간 형식의 payloadcommon_payload 매개 변수에서 전달되는 데이터의 만료 시간(밀리초 단위)입니다.
알림
안전한 전송을 위해 URL 매개변수로 Base64 또는 urlencoder.org를 사용하여 데이터를 암호화하는 것이 좋습니다.
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);

게임 측 통합

런처는 아래 예시와 같이 payload 매개 변수에서 수신한 데이터를 –xsolla-payload 명령줄 인수의 값으로 전달합니다. 또한 아래 예시와 같이 common_payload 매개 변수로 전달된 데이터의 존재 여부와 수명을 확인하여 –xsolla-common-payload 명령줄 인수의 값으로 전달합니다.

Base64를 사용하여 데이터를 암호화했을 때 게임을 시작하는 예시:

Copy
Full screen
Small screen
    game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
    
    이 기사가 도움이 되었나요?
    감사합니다!
    개선해야 할 점이 있을까요? 메시지
    유감입니다
    이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
    의견을 보내 주셔서 감사드립니다!
    메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
    마지막 업데이트: 2024년 1월 22일

    오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

    문제 보고
    콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
    후속 조치를 위해 이메일을 제공해 주세요
    의견을 보내 주셔서 감사드립니다!