Tools Developer Guide - ONE-store/inapp-sdk GitHub Wiki
๊ฐ์
๋ณธ ๋ฌธ์๋ ์์คํ ์ด ์ฑ์ URL Scheme ์ฐ๋ ๋ฐ ๊ฐ์ข API๋ฅผ ์ค๋ช ํฉ๋๋ค.
์์คํ ์ด ์ฑ URL Scheme ์ฐ๋
๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์์คํ ์ด ํด๋ผ์ด์ธํธ๋ฅผ ์คํ์ํจ ํ ํน์ ๋ค์ด๋ก๋ ํ์ด์ง๋ก ๋ฐ๋ก ์ด๋ํ๊ฑฐ๋ ๊ฒ์์ ์คํ์ํค๋ URL scheme์ด ์ง์๋ฉ๋๋ค. http://
, ftp://
, market://
๊ณผ ๊ฐ์ ๋ฌธ์์ด์ URL scheme์ด๋ผ ๋ถ๋ฆ
๋๋ค. URL scheme์ ํตํด ์ฑ์ด ์คํ๋๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฑ์ด๋ ์นํ์ด์ง์์ ํ์ดํผ๋งํฌ ํด๋ฆญ ์ URL scheme์ด system์ ์ ๋ฌ๋จ
- system์์ ์ ๋ฌ๋ URL scheme์ ๋ณด๊ณ ์คํ ๊ฐ๋ฅํ ์ฑ์ด ์๋์ง ํ์ธ
- ํด๋น URL scheme์ ๋ฐ์ ์ ์๋ ์ฑ์ด ์๋ค๋ฉด ์ฑ์ ์คํ์ํค๋ฉฐ ์ด URL์ ํจ๊ป ์ ๋ฌ
- ์ฑ์ด ์คํ๋๋ฉด์ URL์ ํฌํจ๋ ๋ด์ฉ์ ์ฐธ์กฐํด์ ํน์ ๊ธฐ๋ฅ์ ์ํํจ
์น ํ์ด์ง์์ URL scheme์ ์ด์ฉํด ์์คํ ์ด ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ, ์์คํ ์ด ํด๋ผ์ด์ธํธ๊ฐ ๋ฏธ์ค์น๋ ๊ฒฝ์ฐ์ ๋ํ ์์ธ ์ฒ๋ฆฌ ๊ตฌํ์ด ํ์ํ ์ ์์ต๋๋ค. (๋จ, Shorten URL ๋ฐฉ์์ ์์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค)
URL scheme ๊ตฌ์ฑ
๊ฐ ํธ์ถ ๊ท๊ฒฉ ์์ธ ๋ด์ฉ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํ๋ค.
์ฑ/๊ฒ์ ์์ธํธ์ถ
์ํ๋ทฐ๋ product ID(์ํID)๋ฅผ ๊ธฐ์ค์ผ๋ก ์์คํ ์ด ํด๋ผ์ด์ธํธ์์ ํด๋น ์ํ์ ์์ธ๋ณด๊ธฐ ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค. ์ํPID๋ ์์คํ ์ด ์นํ์ด์ง์์ ํด๋น ์ํ์ ๊ฒ์ํ๋ฉด ๊ฐ๋จํ๊ฒ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, '๋๋๊ณค์ผ๊ตญ์ง'๋ผ๋ ๊ฒ์์ ๊ฒ์ํ์ฌ ํด๋น ๊ฒ์์ ์์ธํ์ด์ง๋ก ์ด๋ํ ํ PC ๋ธ๋ผ์ฐ์ ์๋จ์ URL์ ํ์ธํ์๋ฉด http://onestore.co.kr/userpoc/game/view?pid=0000722708์ ๊ฐ์ ํํ๋ก ๋ณด์ด๋๋ฐ, ์ฌ๊ธฐ์ 0000722708์ด ์ด ๊ฒ์์ ์ํPID์ ๋๋ค.
๊ท๊ฒฉ
onestore://common/product/{์ํPID}
์ํ
onestore://common/product/0000252337
๊ฒ์ํธ์ถ
๊ฒ์๋ทฐ๋ ์์คํ ์ด ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ๊ฒ์์ด์ ๋ํ ๊ฒ์๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ฒ ํฉ๋๋ค.
๊ท๊ฒฉ
onestore://common/search/{๊ฒ์์ด}
์ํ
onestore://common/search/๋ค์ด๋ฒ์ฑ
์ ๋ฐ์ดํธ ์์ฒญ(์๋์ค์น)
์ฑ/๊ฒ์ ์ํ์ ์ ๋ฐ์ดํธ ์์ฒญ์ ๋ฐ์, ํด๋น ์ํ์ด ์ต์ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ ๋ฐ์ดํธ ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ ์ค์นํฉ๋๋ค. ์ ๋ฐ์ดํธ ์์ฒญ์ ํ๋ ์ํ์ PKG๋ช ๊ณผ ๋ค์ด๋ก๋ ํ ์ํ์ PKG๋ช ์ด ๋์ผํ ๊ฒฝ์ฐ์ ๋์ํฉ๋๋ค.
๊ท๊ฒฉ
onestore://common/product/bg_update/{์ํPID}
์ํ
onestore://common/product/bg_update/0000252337
Shorten URL๋ก ์ฐ๋ํ๊ธฐ
ProductID(์ํPID)๋ฅผ ํ์ฉํด์ ๊ฐ๋จํ๊ฒ ์ฑ ์์ธํ์ด์ง ์ฐ๋ ์ฃผ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. HTTP ๋๋ฉ ๋ฐฉ์์ด๋ฏ๋ก ์์คํ ์ด ํด๋ผ์ด์ธํธ ์ค์น ์ ๋ฌด์ ๊ด๊ณ์์ด ๋ชจ๋ ๋์ํฉ๋๋ค. (์์คํ ์ด ํด๋ผ์ด์ธํธ๊ฐ ์ค์น๋์ด ์์ง ์์ ๋จ๋ง์์๋ ์์คํ ์ด ๋ชจ๋ฐ์ผ์น์ ํด๋น ์ํ ์์ธ๋ณด๊ธฐ๋ก ์ด๋ํฉ๋๋ค.)
๊ท๊ฒฉ
https://onesto.re/{์ํPID}
์ํ
https://onesto.re/0000252337
๊ธฐ์กด ๊ท๊ฒฉ์ Redirects ์ฒ๋ฆฌ
๊ธฐ์กด์ ๊ฐ Store์์ ๊ฐ๋ณ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ฐ๋ ๊ท๊ฒฉ์ ์๋์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด์ ํ๋งค์ค์ธ ์ํ์ ๊ฒฝ์ฐ, ๋ณ๋๋ก ์ถ๊ฐ ๊ฐ๋ฐ์ ํ ํ์๊ฐ ์์ต๋๋ค.
๊ธฐ์กด๊ท๊ฒฉ ๋ฆฌ ๋ค์ด๋ํธ ์ ๊ท๊ท๊ฒฉ
๋ ํผ๋ฌ(referrer) ์ง์ (ํธ๋ํนํด ์ง์)
intent๋ฅผ ํตํด ๊ด๊ณ ์ฑ๊ณผ๋ฅผ ํฌํจํ ๊ฐ์ข ํต๊ณ ์์ง์ด ํ์ํ ๊ฒฝ์ฐ URL scheme์ referrer ํ๋ผ๋ฏธํฐ๊ฐ ์ถ๊ฐ๋๋ฉด ๋ฉ๋๋ค. AdBrix, TUNE, Adjust, AppsFlyer๋ฅผ ํฌํจํ ๋ชจ๋ ํธ๋ํนํด์์ ๋ฐํ๋๋ measurement URL์ ์ง์ํ๋ฏ๋ก ํธ๋ฆฌํ๊ฒ ๋ง์ผํ ์ฑ๊ณผ ์ธก์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ท๊ฒฉ
onestore://common/product/{์ํPID}?referrer=(STRING)
๋๋
https://onesto.re/{์ํPID}?referrer=(STRING)
์ํ
onestore://common/product/0000652407?referrer=com.square_enix.android.finalfantasy_sp%26ck%3d5416300%26sn%3d17866395096%26cid%3d961204606_17866395096
๋๋
https://onesto.re/0000652407?referrer=com.square_enix.android.finalfantasy_sp%26ck%3d5416300%26sn%3d17866395096%26cid%3d961204606_17866395096
๊ด๊ณ ์ฑ๊ณผ ์ธก์ ์ ์ํด ํธ๋ํน ํด์์ measurement URL์ ๋ฐ๊ธํ๋ ค๋ ๊ฒฝ์ฐ์๋ ์์คํ ์ด ๋๋ฉ URL (onestore:// ๋๋ https://onesto.re ๊ท๊ฒฉ) ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ์งํํ๋ ค๋ ๊ด๊ณ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์ฑ/๊ฒ์ ๋ด๋ถ ๊ด๊ณ ์ธ ๊ฒฝ์ฐ onestore:// ๋๋ฉ URL ์ฌ์ฉ์ ๊ถ์ฅํ๋ฉฐ, ์ธ๋ถ ๋งค์ฒด(๊ด๊ณ ๋คํธ์, DSP ๋ฑ)์ ํตํ ๊ด๊ณ ์งํ์ธ ๊ฒฝ์ฐ https://onesto.re ๋๋ฉ URL ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
๊ด๊ณ ๋ฅผ ํด๋ฆญํ๊ณ ์์คํ ์ด ์ํ ํ์ด์ง๋ก ์ง์ ํ์ฌ ์ฑ/๊ฒ์์ ์ค์นํ ๊ฒฝ์ฐ, ํธ๋ํน ํด์์ ๋ฐ๊ธํ measurement URL์์ ๋ค์ด์๋ referrer๋ฅผ ์์คํ ์ด๊ฐ ๋ค์ ๋ธ๋ก๋์บ์คํธํฉ๋๋ค. ์ต๋ 60์ผ๊น์ง์ look-back window๊ฐ ์ง์๋๋ฏ๋ก ์งํํ๋ ค๋ ๋ง์ผํ ๋ชฉ์ ์ ๋ง๊ฒ ํธ๋ํน ํด์์ ์ ์ ํ look-back window๋ฅผ ์ค์ ํ๊ณ ์งํํ๋ฉด ๋ฉ๋๋ค.
๋ชจ๋ฐ์ผ ์นํ์ด์ง์์ URL scheme ํธ์ถ
html hyperlink reference๋ก ์์์ ์ ์๋ custom url์ ์ ๋ ฅํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํด๋น link ์ ํ์ ์๋์ ๊ฐ์ด ๋ถ๊ธฐํ ์ ์๋๋ก html page๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ฑ ๋ฏธ์ค์น ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๊ตฌํ
์ฑ์ด ์์ ๋๋ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ์ง๋ง, ์์ ๋๋ javascript timer๋ฅผ ์ฌ์ฉํด setTimeout
์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ฐ์ผ ์น ํ์ด์ง๋ ๊ตฌ๊ธํ๋ ์ด ๋ฑ ๋ค๋ฅธ ์คํ ์ด๋ก ๋ถ๊ธฐ์ํค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. (์ฑ ๋ฏธ์ค์น์, ํ์ด์ง ์ด๋ ์ ์ ์ ์ ์ค๋ฅ ํ์
์ด ๋ณด์ผ ์ ์์ต๋๋ค.) ์๋๋ ์คํฌ๋ฆฝํธ ๊ตฌ์ฑ ์ ์
๋๋ค.
์์คํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์จ๊ธฐ๊ธฐ ์ํ iframe ์ฒ๋ฆฌ ๋ฑ์ด ํ์ํ ์ ์์ต๋๋ค. intent scheme์ ์ด์ฉํ๋ฉด ์ข ๋ ๋จ์ํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
var url = "onestore://common/product/0000252337?view_type=1";
var ONEstoreUrl = "https://onesto.re/0000252337"
function onClickApp(url) {
var clickedAt = +new Date;
AppCheckTimer = setTimeout(function() {
if (+new Date - clickedAt < 2000){
if (window.confirm("์์คํ ์ด ์ต์ ๋ฒ์ ์ด ์ค์น๋์ด ์์ง ์์ต๋๋ค. \n๋ชจ๋ฐ์ผ์น ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค."))
{ location.href = ONEstoreUrl; }
}
}, 1500);
}
location.href = url;
Server side API
packageName ์ผ๋ก PID ๋ฐ ๋ฒ์ ๋ช ํ์ธํ๊ธฐ
์ด๋ฏธ ์ํ์ ์ถ์ํ ์ํ๋ผ๋ฉด ํจํค์ง๋ค์ openAPI
๋ฅผ ํตํด์ PID์ ๊ฐ์ข
๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์์ธ ๋ด์ฉ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํ๋ค.
Request ๊ท๊ฒฉ
http://m.onestore.co.kr/mobilepoc/api/getAppVersion.omp?pkgNm={ํจํค์ง๋ค์}&deviceModelCd={๋ชจ๋ธ๋ช
}&osVer={OS๋ฒ์ }
Request ์ํ
http://m.onestore.co.kr/mobilepoc/api/getAppVersion.omp?pkgNm=com.nhn.android.search&deviceModelCd=SM-N920S&osVer=6.0
Response ์ํ
{
"menuId": "DP04202",
"game": false,
"result": {
"desc": "success",
"code": "000"
},
"verNm": "",
"verCd": "",
"topMenuId": "DP30",
"topMenuNm": "์ฑ",
"menuNm": "์ ๋ณด/์์",
"sellerNm": "NAVER Corp.",
"prodId": "0000030320",
"title": "๋ค์ด๋ฒ - NAVER"
}