A. 쿠폰 사용하기
쿠폰은 타입에 따라 앱이 할 일이 다릅니다. download·custom 두 타입만 콜백으로 전달되고, link·apiDownload 는 플레이어가 자체 처리합니다.
▲ 쿠폰 받기 버튼이 뜬 플레이어 화면
쿠폰 타입에 따라 앱이 할 일이 다릅니다
쿠폰은 등록할 때 타입을 정하고, 그 타입에 따라 시청자가 쿠폰을 눌렀을 때의 처리 방식이 달라집니다.
앱이 콜백으로 받는 타입은 두 가지뿐이고, 나머지는 플레이어가 자체 처리합니다.
| 타입 | 플레이어가 하는 일 | 앱이 할 일 |
|---|---|---|
download |
쿠폰 코드를 앱에 전달합니다 | 있음 — onCouponDownload 에서 코드를 받아 발급 처리 |
custom |
등록해 둔 데이터를 앱에 전달합니다 | 있음 — onCouponCustom 에서 자체 규칙으로 처리 |
linknewWindow |
등록된 주소로 외부 브라우저를 엽니다 | 없음 — 콜백이 오지 않습니다 |
apiDownload |
등록된 주소를 플레이어가 직접 호출해 발급을 요청합니다 | 없음 — 대신 서버에 발급 API 를 준비해야 합니다 |
💡 타입은 어드민에서 정합니다. 앱 코드로 바꿀 수 없습니다. 어떤 타입으로 운영할지 먼저 정한 뒤 그에 맞는 준비를 하세요.
콜백 두 개 구현하기
download · custom 타입을 사용한다면 아래 두 콜백에서 처리합니다.
Kotlin
SauceClient.setLivePlayerCallbackListener(object : LivePlayerCallbackListener { override fun onCouponDownload(couponCode: String) { // couponCode = 어드민에 등록한 쿠폰 코드 // 자사 쿠폰 시스템에 발급 요청하고 결과를 알립니다 } override fun onCouponCustom(couponData: String) { // couponData = 어드민에 등록한 데이터(문자열) // 형식과 처리 규칙은 운영 정책에 따라 정합니다 } // 아래 두 개는 각 담당 페이지에서 다룹니다 override fun onLoginRequest() {} override fun onCart(productId: String) {} })
✅ 플레이어는 닫히지 않습니다. 쿠폰 처리 중에도 시청이 이어집니다. 발급 결과는 앱에서 토스트나 알림으로 알려 주세요.
⚠️
custom 의 전달값은 형식이 정해져 있지 않습니다 — 어드민에 입력한 문자열이 그대로 전달됩니다. JSON 으로 쓸지 단순 문자열로 쓸지 운영 담당자와 형식을 먼저 합의하고, 파싱 실패에 대비하세요.
앱이 개입하지 않는 타입
아래 타입은 콜백이 오지 않습니다. 앱에서 구현할 것이 없지만 준비가 필요한 경우가 있습니다.
-
🔗
-
⚙
apiDownload— 플레이어가 등록된 주소를 직접 호출해 쿠폰 발급을 요청합니다. 앱 코드는 필요 없지만 자사 서버에 발급 API 를 준비해야 합니다. 요청 형식은 담당자에게 확인하세요.
Updated about 1 hour ago
Did this page help you?