SDK ์‚ฝ์ž…

๋ถ„์„ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ์ธ SDK๋Š” ์•ฑ ์ธ์Šคํ†จ๊ณผ ์ธ์•ฑ ์ด๋ฒคํŠธ๋ฅผ ์–ดํŠธ๋ฆฌ๋ทฐํŠธํ•˜๊ณ  ์ธ์•ฑ ์• ๋„๋ฆฌํ‹ฑ์Šค์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋ฅผ ํ™•๋ณดํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ณธ ๋ฌธ์„œ์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ Wisetracker SDK๋ฅผ Android App์— ์—ฐ๋™ํ•˜์—ฌ ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. ํ•„์ˆ˜ ์„ค์ •

ํ•„์ˆ˜ ์„ค์ •์ด๋ž€ SDK๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์•ฑ์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์„ค์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์„ค์ •์„ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ธ์Šคํ†จ, ์„ธ์…˜, ๋‹จ๋ง๊ธฐ ์ •๋ณด ๋“ฑ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์•ฑ์— SDK ์ถ”๊ฐ€ (JFrog Artifactory ์ด์šฉ)

ํ”„๋กœ์ ํŠธ์˜ build.gradle ( root ํŒŒ์ผ ) ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์™€์ด์ฆˆํŠธ๋ž˜์ปค์˜ maven repository ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

allprojects {
    repositories {
        google()
        mavenCentral()
        /* sdk repository url ์ถ”๊ฐ€ */ 
        maven { url 'https://wisetracker.jfrog.io/artifactory/wisetracker-gradle-release-local' }
    }
}

์•ฑ์— SDK ์ถ”๊ฐ€ (Github Package ์ด์šฉ)

ํ”„๋กœ์ ํŠธ์˜ build.gradle ( root ํŒŒ์ผ ) ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์™€์ด์ฆˆํŠธ๋ž˜์ปค์˜ Repository ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์—ฌ์ง€๋Š” ๊ฒฝ์šฐ, "Gradle Scripts"์˜ "settings.properties"ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"app"๋ชจ๋“ˆ๋‹จ์œ„์˜ app/build.gradle ํŒŒ์ผ์— ์žˆ๋Š” dependencies์— ์•„๋ž˜์™€ ๊ฐ™์ด Wisetracker SDK๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

AuthorizationKey ๋“ฑ๋ก

ํ”„๋กœ์ ํŠธ์˜ app/res/values/strings.xml ํŒŒ์ผ์— ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•œ ์ฝ”๋“œ ์ค‘ serviceNumber์˜ value๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์™€์ด์ฆˆํŠธ๋ž˜์ปค ๋Œ€์‹œ๋ณด๋“œ์— ๋กœ๊ทธ์ธํ•˜์—ฌ ์„ค์ • > ์„œ๋น„์Šค์„ค์ • ๋ฉ”๋‰ด์—์„œ '์„œ๋น„์Šค๋ฒˆํ˜ธ' ํ•ญ๋ชฉ์— ๊ธฐ์žฌ๋œ ์ˆซ์ž๋ฅผ ํ™•์ธ ํ›„ ๋ณต์‚ฌํ•˜์—ฌ serviceNumber ๊ฐ’์„ ๋ณ€๊ฒฝ ํ•ด ์ฃผ์„ธ์š”.

์„œ๋น„์Šค๋ฒˆํ˜ธ ํ™•์ธ

HTTP ํ†ต์‹  ํ—ˆ์šฉ

ํ”„๋กœ์ ํŠธ์˜ Target API๊ฐ€ API Level 28 ์ด์ƒ์ผ ๊ฒฝ์šฐ์— ์ ์šฉํ•˜๋Š” ์„ค์ •์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด HTTP ํ†ต์‹ ์„ ํ—ˆ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

AndroidManifest.xml ์„ค์ •

app/res/xml/network_security_config.xml ์„ค์ •

  • ์ด ํŒŒ์ผ์ด ์—†์œผ๋ฉด ํ•ด๋‹น ์œ„์น˜์— ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

ํ”„๋กœ๊ฐ€๋“œ(Proguard) ์„ค์ •

ํ”„๋กœ์ ํŠธ์— ํ”„๋กœ๊ฐ€๋“œ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์™€์ด์ฆˆํŠธ๋ž˜์ปค(Wisetracker) SDK ๊ด€๋ จ ์˜ˆ์™ธ ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ฐ€๋“œ ์„ค์ • ํŒŒ์ผ ํ•˜๋‹จ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

์ดˆ๊ธฐํ™”

Application์„ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค๊ฐ€ ์•„๋‹Œ Activity๋ฅผ ์ƒ์†๋ฐ›๋Š” ๊ธฐ๋ณธ ํ™”๋ฉด์˜ onCreate() ํ•จ์ˆ˜์— ์ ์šฉํ•ด ์ฃผ์„ธ์š”. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๊ธฐ๋ณธ ํ™”๋ฉด์€ AndroidManifest.xml ํŒŒ์ผ์— ์„ ์–ธ๋œ Activity ์ค‘, "android.intent.action.MAIN" ์™€ "android.intent.category.LAUNCHER" Intent-Filter ๊ฐ€ ์ ์šฉ๋œ Activity๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์–ดํŠธ๋ฆฌ๋ทฐ์…˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ

DOT.getAttributedInfo ํ˜ธ์ถœ์„ ํ†ตํ•ด ์™€์ด์ฆˆํŠธ๋ž˜์ปค ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ƒ์„ฑํ•œ ์–ดํŠธ๋ฆฌ๋ทฐ์…˜๋งํฌ๋ฅผ ํ†ตํ•ด ์•ฑ์„ ์„ค์น˜ํ•œ ์œ ์ €(non-organic)์˜ attribute ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ํ•„์ˆ˜ ์ฒดํฌ ์‚ฌํ•ญ

1

Android SDK ์ตœ์‹ ๋ฒ„์ „์ด ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2

Android API ๊ฐ€ 26 ์ด์ƒ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

3

SDK ์ดˆ๊ธฐํ™” ํ•จ์ˆ˜ DOT.initialization(this)ํ˜ธ์ถœํ•œ ์ดํ›„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

result ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํ˜•ํƒœ๋Š” ์•„๋ž˜์˜ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ  ํ•ด์ฃผ์„ธ์š”.

(result ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด Organic ์œผ๋กœ ์‹๋ณ„๋œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.)

โ‘  ์•ฑ์„ค์น˜(์˜ˆ์‹œ)

โ‘ก ์•ฑ์‹คํ–‰(์˜ˆ์‹œ)

์ด๋ฒคํŠธ ์„ค์ •

โœ…ํ™”๋ฉด์ „ํ™˜ ๋˜๋Š” ์ด๋ฒคํŠธ ๋ถ„์„์„ ์œ„ํ•œ ์ ์šฉ ๋ฐฉ๋ฒ•์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ • ๋ฐ ์ดˆ๊ธฐํ™” ์ดํ›„์— ์•„๋ž˜ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜, ์ขŒ์ธก IN-APP EVENT ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ํŽ˜์ด์ง€ ๋ถ„์„ ๊ฐ€์ด๋“œ๋กœ ์ด๋™ํ•˜๊ธฐ

๐Ÿ‘‰์ธ์•ฑ ์ด๋ฒคํŠธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜๊ธฐ

Hybrid App์„ ์œ„ํ•œ ์„ค์ • ์ถ”๊ฐ€

Hybrid App์ธ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉํ•˜๋ฉด ๋˜๋Š” ์„ค์ •์œผ๋กœ, WebView๋กœ ํ‘œ์‹œํ•œ ์›นํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์›น๋ทฐ๋กœ ๋ถˆ๋Ÿฌ์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์ด setWebView ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  WebViewClient ์˜ ๊ฐ๊ฐ์˜ ์ฝœ๋ฐฑ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ ์šฉํ•ด์ฃผ์„ธ์š”.

2. ๊ณ ๊ธ‰ ์„ค์ •

๊ณ ๊ธ‰ ์„ค์ •์ด๋ž€ ๋ฐ˜๋“œ์‹œ ์ ์šฉํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ์™€์ด์ฆˆํŠธ๋ž˜์ปค์˜ ํ™•์žฅ๋œ ๋ถ„์„๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์„ค์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์•ฑ ๋งํฌ ์„ค์ • ๊ฐ€์ด๋“œ๋Š” ๋ณ„๋„์˜ ๋ฌธ์„œ์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

App Link ์„ค์ •

๋”ฅ๋งํฌ๊ฐ€ ์„ค์ •๋œ url ์„ ํ†ตํ•ด์„œ ์˜คํ”ˆ๋œ ์ด๋ฒคํŠธ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. AndroidManifest.xml ํŒŒ์ผ์—์„œ ์•ฑ์˜ ํ™˜๊ฒฝ์— ๋งž์ถฐ ๋”ฅ๋งํฌ๋กœ ์˜คํ”ˆ๋˜๋Š” Activity์˜ android:host, android:scheme ๊ฐ’์„ ์„ค์ •ํ•ด ์ฃผ์„ธ์š”.

โœ”๏ธ์™€์ด์ฆˆํŠธ๋ž˜์ปค ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ƒ์„ฑํ•œ ์–ดํŠธ๋ฆฌ๋ทฐ์…˜๋งํฌ๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ๋ฐ ๊ด‘๊ณ ์ง‘ํ–‰์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋”ฅ๋งํฌ ํด๋ฆญ ์‹œ ์™€์ด์ฆˆํŠธ๋ž˜์ปค ์„œ๋ฒ„๊ฐ€ ์•ฑ์˜ ์„ค์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ "https://xxxx.page.link" ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น URL์ด ๊ฐ€๋ฅดํ‚ค๋Š” ์›น์œผ๋กœ ์ด๋™ํ•จ์œผ๋กœ์จ ์™€์ด์ฆˆํŠธ๋ž˜์ปค๊ฐ€ ์ˆ˜์ง‘ํ•˜์—ฌ์•ผ ํ•˜๋Š” ๊ด‘๊ณ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์ด ์œ ์‹ค๋  ์ˆ˜ ์žˆ์–ด, ์•ฑ์œผ๋กœ ๋ฐ”๋กœ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ Unique ํ•œ ์ปค์Šคํ…€์Šคํ‚ค๋งˆ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์œ ๋‹ˆ๋ฒ„์…œ๋งํฌ๊ฐ€ ์กด์žฌ ํ•œ๋‹ค๋ฉด ์™€์ด์ฆˆํŠธ๋ž˜์ปค์—์„œ ์‚ฌ์šฉํ•  ๋”ฅ๋งํฌ ์ง„์ž… ์Šคํ‚ค๋งˆ ์„ค์ •์„ '์ถ”๊ฐ€' ํ•ด ์ฃผ์„ธ์š”. (๋”ฅ๋งํฌ์Šคํ‚ค๋งˆ ์„ค์ • ์ถ”๊ฐ€์‹œ ๋‹ค๋ฅธ ๋งํฌ์— ์–ด๋– ํ•œ ์˜ํ–ฅ๋„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

์œ„์˜ ์ƒ˜ํ”Œ ์ฝ”๋“œ์™€ ๊ฐ™์ด AndroidManifest.xml์— ์„ค์ •์„ ๋งˆ์น˜์‹œ๊ฒŒ ๋˜์‹œ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์ปค์Šคํ…€ ์Šคํ‚ค๋งˆ๊ฐ€ ์„ค์ •๋œ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

wisetracker://wisetracker.co.kr

์—ฌ๊ธฐ์„œ wisetracker:// ๋ถ€๋ถ„์ดScheme(ํ˜น์€ ํ”„๋กœํ† ์ฝœ) ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์— ์ด Scheme๋ฅผ ์“ธ ๊ฒƒ์ด๋ผ๊ณ  ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ํ•ด๋‹น Scheme๋งŒ ์„ค์ •์„ ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ wisetracker.co.kr ๋ถ€๋ถ„์€ ํŠน์ • ํŽ˜์ด์ง€์— ๋„๋‹ฌํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ host(ํ˜น์€ path or ๋„๋ฉ”์ธ) ์ž…๋‹ˆ๋‹ค.

๋”ฅ๋งํฌ ๋ถ„์„

๋”ฅ๋งํฌ๋กœ ์‹คํ–‰๋˜๋Š” Activity์˜ onCreate์™€ onNewIntent์— ์•„๋ž˜์™€ ๊ฐ™์ด setDeepLink๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์™€์ด์ฆˆํŠธ๋ž˜์ปค SDK๋ฅผ ์ ์šฉํ•˜๊ณ , ๊ด‘๊ณ  ๋ถ„์„์„ ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ์™€์ด์ฆˆํŠธ๋ž˜์ปค ์‹œ์Šคํ…œ์—์„œ ๋ฐœ๊ธ‰๋œ ๊ด‘๊ณ  ๋ถ„์„ ๋งํฌ์— ์˜ํ•ด์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋”ฅ๋งํฌ URL์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ด‘๊ณ  ๋ถ„์„ ๋ชฉ์ ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ์›น์•ฑ์˜ ๊ฒฝ์šฐ url ์ด๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น๋ทฐ์— ๋กœ๋”ฉ๋˜์–ด์งˆ ์›นํŽ˜์ด์ง€ url์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์•„๋ž˜์˜ ์ผ€์ด์Šค์—๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋”ฅ๋งํฌ ์„ค์ • ํ›„ ํ…Œ์ŠคํŠธ์‹œ ๊ฐ€์ด๋“œ๋ถ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

Deffered Deep Link (์ง€์—ฐ๋œ ๋”ฅ๋งํฌ) ์ ์šฉ

  1. ์ง€์—ฐ๋œ ๋”ฅ๋งํฌ ๊ธฐ๋Šฅ์€ Growth ๋ ˆ๋ฒจ ์ด์ƒ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  2. ์ง€์—ฐ๋œ ๋”ฅ๋งํฌ ๊ธฐ๋Šฅ ์ œ๊ณต SDK ๋ฒ„์ „ - Android SDK: Base Modeul - 1.0.81 ์ด์ƒ / New Dot Module - 1.0.51 ์ด์ƒ - iOS SDK: RW 1.1.52 ์ด์ƒ

๊ธฐ์กด์˜ DOT.initialization SDK ์ดˆ๊ธฐํ™” ํ•จ์ˆ˜ ๋Œ€์‹  ์•„๋ž˜์˜ DOT.initializationForDeferredCallback ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์ˆ˜์‹ ๋œ ์ง€์—ฐ๋œ ๋”ฅ๋งํฌ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ง€์—ฐ๋œ ๋”ฅ๋งํฌ์— ๋Œ€ํ•œ ๋Œ€์‘ ์ฝ”๋“œ๊ฐ€ ์ ์šฉ๋œ ์ดํ›„์— ์™€์ด์ฆˆํŠธ๋ž˜์ปค ๋Œ€์‰ฌ๋ณด๋“œ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์–ดํŠธ๋ฆฌ๋ทฐ์…˜ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ง€์—ฐ๋œ ๋”ฅ๋งํฌ(๋””ํผ๋“œ ๋”ฅ๋งํฌ)๊ฐ€ ์‚ฌ์šฉ๋œ ์–ดํŠธ๋ฆฌ๋ทฐ์…˜ ๋งํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ ์•ฑ์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์•˜๋˜ ๊ฒฝ์šฐ๋ผ๋ฉด, ๋จผ์ € ์•ฑ ์„ค์น˜๋ฅผ ์œ„ํ•ด ๋งˆ์ผ“(๊ตฌ๊ธ€์Šคํ† ์–ด, ์•ฑ์Šคํ† ์–ด)์œผ๋กœ ์ด๋™๋˜๊ณ , ์•ฑ ์„ค์น˜ ์ดํ›„์— ์•ฑ์„ ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด String __deferredUrl ๋ณ€์ˆ˜์— ์„ค์ •ํ•œ ์•ฑ ์‹คํ–‰ ๋งํฌ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: wisetester://mainscreen)

๋”ฐ๋ผ์„œ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” (๋””ํผ๋“œ) ๋”ฅ๋งํฌ ๊ฐ’์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์ดํ›„ ์•ก์…˜์— ๋Œ€ํ•ด ๋Œ€์‘๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Facebook ๊ด‘๊ณ  ์„ฑ๊ณผ ์ธก์ •

Facebook App Ads์˜ ํผํฌ๋จผ์Šค๋ฅผ ์™€์ด์ฆˆํŠธ๋ž˜์ปค๋กœ ์ธก์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์„ค์ •์œผ๋กœ, Facebook SDK๊ฐ€ ์•ฑ์— ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์„ค์ •์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ์ธ์ฆ

Facebook Developer ์‚ฌ์ดํŠธ์˜ ์•ฑ์„ค์ •-๊ธฐ๋ณธ์„ค์ •์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ์ธ์ฆ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•ด ์ฃผ์„ธ์š”. ๋น„์ฆˆ๋‹ˆ์Šค ์ธ์ฆ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ, ๋ฆฌํผ๋Ÿฌ ์ •๋ณด๊ฐ€ ์ˆ˜์‹ ๋˜์ง€ ์•Š์•„, facebook ๊ด‘๊ณ  ์„ฑ๊ณผ์— ๋Œ€ํ•œ ์ธก์ •์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์„ค์ • ์ ์šฉ

ํ”„๋กœ์ ํŠธ์˜ app/res/values/strings.xml ํŒŒ์ผ์— ์•„๋ž˜ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ดˆ๋กœ ์‹คํ–‰๋˜๋Š” Activity์˜ onCreate์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”.

๋ฐ์ดํ„ฐ ํ™•์ธ

Facebook์˜ App Ads Helper๋กœ Deferred Deep Linking ์„ ํ…Œ์ŠคํŠธ ํ•จ์œผ๋กœ์จ ์œ„ ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค€๋น„์‚ฌํ•ญ

  1. Android ํ…Œ์ŠคํŠธ ๋‹จ๋ง๊ธฐ ํ™˜๊ฒฝ

    • ๋‹จ๋ง๊ธฐ์— Facebook ์•ฑ์„ ์„ค์น˜ํ•˜๊ณ  Facebook ๊ฐœ๋ฐœ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์ฃผ์„ธ์š”.

    • ๋‹จ๋ง๊ธฐ์— ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์•ฑ(๊ณ ๊ฐ์‚ฌ ์•ฑ)์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์‚ญ์ œํ•ด์ฃผ์„ธ์š”.

    • ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์™€ USB ๋””๋ฒ„๊น…์„ ํ™œ์„ฑํ™” ํ•ด์ฃผ์„ธ์š”.

  2. ๋ฐ์Šคํฌํƒ‘ ํ™˜๊ฒฝ

    • Android Studio๋ฅผ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”.

    • USB๋กœ ์—ฐ๊ฒฐ๋œ ํ…Œ์ŠคํŠธ ๋‹จ๋ง๊ธฐ์˜ log๋ฅผ Android Studio์˜ logcat์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  3. Facebook ์„ค์ •

    • ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ์•ฑ์ด Facebook Developer์— ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ๊ฐœ๋ฐœ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ ์„ค์น˜ํ˜• ๊ด‘๊ณ  ํ…Œ์ŠคํŠธ

  1. https://developers.facebook.com -> ๋„๊ตฌ -> ์•ฑ ๊ด‘๊ณ  ์ง€์› ๋„๊ตฌ ๋ฉ”๋‰ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

(https://developers.facebook.com/tools/app-ads-helper/)

  1. ํ…Œ์ŠคํŠธํ•  ์•ฑ์„ ์„ ํƒํ•œ ํ›„ ํŽ˜์ด์ง€ ํ•˜๋‹จ Developer Tool์˜ ๋”ฅ๋งํฌ ํ…Œ์ŠคํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  1. PC์—์„œ Android Studio๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๋‹จ๋ง๊ธฐ๋ฅผ USB๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ด€๋ จ ๋กœ๊ทธ๋ฅผ logcat์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ์ˆ˜์‹ ํ•œ Deep Link Referrer๋ฅผ logcat์—์„œ ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  2. Facebook ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์•ฑ์˜ ์ปค์Šคํ…€ ์Šคํ‚ค๋งˆ๋ฅผ Send Deep Link์— ์ž…๋ ฅํ•˜๊ณ  Send to Android ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ์ „์†ก์ง€์—ฐ์€ ๋ฐ˜๋“œ์‹œ ์ฒดํฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. '์ „์†ก์ง€์—ฐ'์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ Facebook ์•ฑ์— ์•Œ๋ฆผ์€ ์ˆ˜์‹ ๋˜์ง€ ์•Š์ง€๋งŒ, ์•„๋ž˜์™€ ๊ฐ™์€ ํŒ์—…์ด ๋ฐœ์ƒ ํ•˜์˜€๋‹ค๋ฉด ์ธ์Šคํ†จ๋ฆฌํผ๋Ÿฌ ์ˆ˜์‹ ์„ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค. Facebook์— ์ž…๋ ฅํ•œ ์ปค์Šคํ…€ ์Šคํ‚ค๋งˆ๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ logcat์—์„œ ๋ณด์ธ๋‹ค๋ฉด ํŽ˜์ด์Šค๋ถ ์•ฑ ์„ค์น˜ ๊ด‘๊ณ ์— ๋Œ€ํ•œ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์•ฑ ์ฐธ์—ฌํ˜• ๊ด‘๊ณ  ํ…Œ์ŠคํŠธ

  1. ์•ฑ ์ฐธ์—ฌ ๊ด‘๊ณ ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ ์•ฑ์„ ์„ค์น˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ด‘๊ณ ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ์ ์— ํŽ˜์ด์Šค๋ถ ๊ด‘๊ณ ์— ๋“ฑ๋กํ•œ ๋”ฅ ๋งํฌ๊ฐ’์ด ๋™์ž‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  2. ์•ฑ ์ฐธ์—ฌ ๊ด‘๊ณ  ๋“ฑ๋ก ์‹œ ์‚ฌ์šฉํ•œ ๋”ฅ ๋งํฌ๋ฅผ Send Deep Link ์˜์—ญ์— ์ž…๋ ฅ ํ›„ Send to Android ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ์ „์†ก ์ง€์—ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์ฒดํฌ ํ•ด์ œ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  3. ํ…Œ์ŠคํŠธ ๋‹จ๋ง๊ธฐ์˜ Facebook ์•ฑ์— ์•Œ๋ฆผ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  4. Facebook์— ์ž…๋ ฅํ•œ ์ปค์Šคํ…€ ์Šคํ‚ค๋งˆ๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ logcat์—์„œ ๋ณด์ธ๋‹ค๋ฉด ํŽ˜์ด์Šค๋ถ ์•ฑ ๊ด‘๊ณ ์— ๋Œ€ํ•œ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?