게임에서 웹숍 열기
인증된 플레이어 세션으로 게임이 웹숍을 여는 방법과 플레이어가 인증되는 방법을 이해합니다.
읽는 시간 1분최근 업데이트: 8일 전
웹숍은 Unity 게임 컨텍스트 외부에서 실행됩니다. 상점에서 플레이어를 식별하기 위해 게임은 인증된 플레이어 세션이 포함된 아웃바운드 링크를 통해 상점을 엽니다. 플레이어가 추가 로그인 단계 없이 구매를 완료할 수 있도록 권장되는 방법입니다.
플레이어는 브라우저, 북마크, 마케팅 링크 또는 공유 링크에서 직접 상점을 열 수도 있습니다. 스토어에서 플레이어 세션을 수신하지 않으면 제품 목록 대신 인증되지 않은 랜딩 페이지가 표시됩니다. 구매가 완료되면 상점에서 플레이어에게 반환 딥 링크를 통해 게임으로 돌아갈 수 있습니다. 또한 이 스토어는 이 링크를 사용하여 인증되지 않은 플레이어를 자동으로 처리합니다. 자세한 내용은 수신되는 딥 링크 처리를 참조하십시오.
웹숍은 게임이 전달하는 세션의 인증을 처리합니다. 별도의 로그인 플로를 빌드할 필요는 없습니다. 자세한 내용은 플레이어 인증 및 지속 세션을 참조하십시오.
아웃바운드 링크
게임은 플랫폼의 표준 외부 URL 처리를 사용하여 상점 URL을 엽니다. 모바일 디바이스에서는 일반적으로 시스템 브라우저 또는 인앱 웹 뷰에서 스토어를 엽니다.
URL 형식은 다음과 같습니다.
https://shop.unity.com/{studio}/game/{slug}?sessionToken={token}&projectId={projectId}&environment={env}
라이브 게시 스토어 또는 환경의 초안 미리보기를 위해 런타임 시점에 이 URL을 확인하려면 Unity 게임에 웹숍 통합을 참고하십시오.
다음 쿼리 파라미터는 플레이어를 식별하고 올바른 웹숍 컨텍스트를 로드합니다.
파라미터 | 목적 |
|---|---|
| Unity Authentication SDK의 수명이 짧은 세션 토큰입니다. 이 스토어는 플레이어의 브라우저에서 인증된 플레이어 세션으로 이 토큰을 교환합니다. |
| 플레이어가 속한 Unity 클라우드 프로젝트 ID입니다. 스토어는 이 값을 사용하여 올바른 웹숍과 카탈로그를 로드합니다. |
| 로드할 Unity 환경 이름입니다. 이 파라미터는 선택 사항이며 기본값은 |
카탈로그가 플레이어의 지역에 대한 제품을 반환하도록 및 를 전달할 수도 있습니다.
localecurrencyhttps://shop.unity.com/acme/game/dungeons?sessionToken=…&projectId=…&environment=production&locale=ja-JP¤cy=JPY
스토어가 인증 및 저장 파라미터를 파싱하면 URL에서 파라미터를 제거합니다. 이렇게 하면 스크린샷이나 실수로 공유된 URL이 세션 토큰을 노출하지 않도록 방지할 수 있습니다.
sessionTokenprojectId게임이 상점을 열 때마다 인증된 URL이 필요합니다.
플레이어 인증 및 세션 지속
웹숍은 Unity 인증을 통해 플레이어 세션을 인증합니다. 게임이 스토어를 열면 쿼리 파라미터에 수명이 짧은 Unity Authentication 토큰이 포함됩니다. 상점은 플레이어의 브라우저에서 토큰을 영구적인 플레이어 세션으로 교환합니다.
sessionToken플레이어가 인증되지 않으면 카탈로그를 볼 수 없고 구매를 완료할 수 없습니다. 플레이어가 인증 컨텍스트 없이 상점을 열면 제품 목록 대신 인증되지 않은 랜딩 페이지가 상점에 표시됩니다.
성공적인 교환 후, 상점은 브라우저의 에 플레이어 ID를 저장합니다. 저장된 ID의 범위는 프로젝트와 환경에 따라 지정됩니다. 동일한 플레이어가 나중에 브라우저 북마크 등과 같이 스토어 URL을 열면 스토어는 캐시된 ID를 재사용하고 인증 교환을 건너뛰 수 있습니다. 플레이어가 게임에서 다시 상점을 열 필요가 없습니다.
sessionTokenlocalStorage저장된 세션 토큰이 유효한 동안 세션이 자동으로 새로 고침됩니다.
대시보드 미리보기 경로인 에서 시작하는 세션은 대신 를 사용합니다. 이는 현재 탭의 스트라이프 리디렉션 중에 동일한 플레이어 ID를 보존하지만 탭이 닫힌 후 세션은 유지되지 않습니다.
/_preview/...localStoragesessionStorage자세한 내용은 웹 상점의 카탈로그 및 결제를 참조하십시오.
인증되지 않은 랜딩 페이지 처리
플레이어가 프로젝트와 환경의 에 캐시된 세션 없이 인증 컨텍스트 없이 상점 URL을 열면 상점은 제품 목록 대신 인증되지 않은 시작 페이지를 표시합니다.
localStorage제품 목록에 접근하기 위해 플레이어는 인증된 세션을 전달하는 게임의 웹숍을 엽니다.
시작 페이지에는 게임 연결 버튼도 표시됩니다. 플레이어가 이 버튼을 선택하면 딥 링크를 통해 상점에서 게임이 열립니다. 플레이어의 인증 정보가 자동으로 수집되고, Unity IAP SDK는 제품 목록에서 인증된 세션으로 스토어를 다시 엽니다.
딥 링크가 설정되어 있지 않으면 버튼이 플레이어에게 대신 게임에서 상점을 열라는 메시지를 표시합니다.
이 로그인 플로에서 상점은 자동으로 Deeplink URL을 수정합니다.
구매 후 게임으로의 수익
구매가 완료되면 딥 링크로 플레이어를 게임으로 돌려보낼 수 있습니다. 대시보드의 Deeplink URL 필드(예: )에서 구성합니다. 반환 시, 웹숍은 입력한 링크를 정확히 사용하므로 커스텀 후 구매 경로를 추가할 수 있습니다.
mygame://purchase-success값을 입력하면 인증되지 않은 랜딩 페이지에서 반환 링크와 게임 연결을 모두 실행할 수 있습니다. 필드를 비워 두면 둘 다 비활성화됩니다. 별도의 켜기/끄기 설정은 없습니다. 필드와 제한에 대한 자세한 내용은 웹숍 만들기 및 웹숍 제한 참조를 참조하십시오.
반환 링크를 활성화하면 웹숍에서 구매 결과를 쿼리 파라미터로 추가합니다.
mygame://purchase-success?status=success&playerId={playerId}
쇼핑이 완료된 후에 를 추가하고 플레이어 ID를 사용할 수 있을 때 를 추가합니다. 설정된 URL에 경로가 없는 경우, 웹숍은 파라미터를 다음과 같이 스키마에 직접 추가합니다.
status=successplayerIdmygame://?status=success
게임은 커스텀 URL 체계를 등록하고 쿼리 파라미터를 읽어 플레이어가 중단한 지점에서 재개합니다.
게임으로 돌아가기 버튼은 다음 조건이 모두 충족된 경우에만 구매 결과 화면에 나타납니다.
- 플레이어가 딥 링크를 통해 게임에서 상점을 엽니다.
- 플레이어가 iOS 또는 Android와 같은 모바일 디바이스를 사용합니다.
- 웹숍에 반환 딥 링크가 설정되어 있습니다.
데스크톱이나 플레이어가 딥 링크를 통해 상점을 열지 않은 경우 결과 화면에 대신 구매 계속이 표시됩니다. 플레이어가 구매 취소 또는 실패한 후 게임으로 돌아갈 수 있도록 장애 화면에도 게임으로 돌아가기 버튼이 표시됩니다.