원활한 웹-투-게임 통합

작동 방식

원활한 웹-투-게임 통합을 통해 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. 각 운영 체제에 대해 실행할 수 있는 파일 이름 필드에 인수를 추가합니다. 인수 값에서 링크 또는 버튼이 위치한 웹 사이트 URL을 전달합니다. 이 값은 Base64 값을 사용하여 인코딩해야 합니다.

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

알림

–x_payload_url 인수는 게임 웹 사이트로 사용자를 리디렉션하는 데 사용하지만 출시될 때 게임 실행 파일에 전달되지 않습니다.

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

웹 사이트에 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
 1function getAuthToken() {
 2    return 'YOUR DATA HERE';
 3}
 4
 5function getDeeplink(launcherID, gameID) {
 6    const encodedPayload = btoa(getAuthToken());
 7    const expiresIn = new Date();
 8    expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
 9 return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
10}
11
12// Put that `href` to button or link address
13const href = getDeeplink(123, 4567);

게임 측 통합

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

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

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

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

    문제 보고
    콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
    후속 조치를 위해 이메일을 제공해 주세요
    의견을 보내 주셔서 감사드립니다!
    피드백을 보내는 중 문제가 발생했습니다
    잠시 후 다시 시도하거나 doc_feedback@xsolla.com으로 연락해 주세요.