AppsFlyer μ°λ
ν΅ν΄μ μΈλΆ μλΉμ€μ μ°λνμ¬ λ νΈλ¦¬νκ² μ¬μ©ν΄λ³΄μΈμ.AppsFlyer 곡μ μ°λμ μν°νλΌμ΄μ¦ νλμΈ κ²½μ°μ μ¬μ©νμ€ μ μμ΅λλ€.
AppsFlyerλ?
AppsFlyer(μ±μ€νλΌμ΄μ΄)λ λͺ¨λ°μΌ λ§μΌν λΆμ λ° μ΄νΈλ¦¬λ·°μ μ루μ μΌλ‘, κ΄κ³ μΊ νμΈμ μ±κ³Όλ₯Ό μΆμ νκ³ λͺ¨λ°μΌ μ±μ μ¬μ©μ νλμ μ΅μ ννλ λ° λμμ μ£Όλ κΈλ‘λ² νλ«νΌμ λλ€. μ¬μ©μ νλ λ°μ΄ν°λ₯Ό μ’ ν©μ μΌλ‘ λΆμνμ¬ λ§μΌν μ λ΅μ ν¨κ³Όλ₯Ό νκ°νκ³ , λ€μν λ§μΌν μ±λμμμ μ±κ³Όλ₯Ό ν¬λͺ νκ² νμ ν μ μμ΅λλ€.
ν΅ν΄κ³Ό AppsFlyerλ₯Ό μ°λνλ©΄ λͺ¨λ°μΌ μ±μ μ μ μ 보λ₯Ό μ¬μ©μ μμ±μΌλ‘ λΆλ¬μμ, A/Bν μ€νΈ νκ²ν μ΄λ μΈλΆ λΆμμΌλ‘ νμ©ν μ μμ΅λλ€.
AppsFlyerμ ν΅ν΄μ μ°λνκ³ μΆμΌμ κ°μ?
AppsFlyerμ ν΅ν΄μ μ°λνκ³ λ κΉμ λΆμκ³Ό μ±μ₯μ κ²½ννμΈμ.
AppsFlyer μ°λνκΈ°
ν΅ν΄ λμ보λ μ€μ
-
μ°λνκΈ°μ μμ, μλΉμ€μ ν΅ν΄ SDKμ AppsFlyer SDK λͺ¨λ μ€μΉκ° λμ΄μμ΄μΌν©λλ€.
-
ν΅ν΄ λμ보λμ μν¬μ€νμ΄μ€ μ€μ > μΈλΆ μ°λ νλ©΄μ μ μν΄μ£ΌμΈμ. (λ§ν¬)
-
AppsFlyerλ₯Ό μ νν©λλ€.
AppsFlyer μ°λ μνμ μ°λμ νμν API Keyλ₯Ό νμΈνμ€ μ μμ΅λλ€. μ°λ μνλ AppsFlyerμ API Key λ±λ‘μ΄ μλ£λκ³ , AppsFlyerλ‘λΆν° ν΅ν΄μ μ΄λ²€νΈκ° μ μμ μΌλ‘ μμ λλ©΄ μ°λ μλ£λ‘ λ³κ²½λ©λλ€. μ΄μ λ€μ λ¨κ³λ AppsFlyer λμ보λμμ μ§ννμλ©΄ λ©λλ€.
AppsFlyer λμ보λ μ€μ - ννΈλ μΆκ°

λ©λ΄ -> μ€μ -> ννΈλ λ§μΌνλ μ΄μ€

ννΈλ λ§μΌνλ μ΄μ€ μ΄λ

ννΈλ λ§μΌνλ μ΄μ€μμ Hackle κ²μ ν Hackle ννΈλ ν΄λ¦

μ°λκ΄λ¦¬ μ΄λ
ννΈλ μ°λ μ€μ
- Hackle API Key μ€μ μμ ν΅ν΄ λμ보λμμ λ°κΈλ API Keyλ₯Ό μ λ ₯ν΄μ£ΌμΈμ.
- Hackle ννΈλ κΆν μ€μ

λ©λ΄ -> μ€μ -> νμ±νλ μ°λ (κΆν ν)
- κΈ°λ³Έ ν¬μ€νΈλ°± μ€μ
μ μ μ μ μμ€λ₯Ό μ€κ°λμ ν¬ν¨ν λͺ¨λ λ―Έλμ΄ μμ€ μ ν

μ μ μ μ μμ€ λ³κ²½
μ΄μ AppsFlyerλ‘λΆν° ν΅ν΄λ‘ λ°μ΄ν°λ₯Ό μ μ‘νκΈ° μν λμ보λ μ€μ μ λ§μ³€μ΅λλ€. λ§μ§λ§μΌλ‘ SDK μ°λμμ μ ν΅ν΄ μ μ‘λ λ°μ΄ν°λ₯Ό ν΅ν΄μ λ€λ₯Έ λ°μ΄ν°μ μ°κ²°ν΄μ λ³Ό μ μλλ‘ ν΄μ£ΌμΈμ.
SDK μ°λ μμ
AppsFlyerμμ μ μ‘λ λ°μ΄ν°λ₯Ό ν΅ν΄μμ μ μμ μΌλ‘ μ¬μ©νκΈ° μν΄μλ Hackle Device IDλ₯Ό AppsFlyer SDKμ λ°λμ μ μ‘ν΄μΌ ν©λλ€.
AppsFlyer μ°λνλ μ½λμ μλμ κ°μ΄ μ€μ ν΄μ£ΌμΈμ. Hackle SDK μ΄κΈ°ν (init)ννμ μλ ν¨μλ₯Ό νΈμΆν΄μΌ μ μμ μΌλ‘ Hackle Device IDλ₯Ό λΆλ¬μ¬ μ μμ΅λλ€.
HackleCustomIdλ λͺ¨λ ν¬μ€νΈλ°±κ³Ό ν¨κ» μ μ‘λλ©°, μ¬μ©μλ₯Ό μλ³νκΈ° μν΄ μ¬μ©λ©λλ€.
ν¬μ€νΈλ°± μ΄λ²€νΈλ μΌλ°μ μΈ μ΄λ²€νΈμ λμΌνκ² κ³ΌκΈλ©λλ€.
HashMap<String, Object> customData = new HashMap<String,Object>();
String deviceId = HackleApp.getInstance().getDeviceId();
customData.put("hackleCustomId", deviceId);
AppsFlyerLib.setAdditionalData(customData);
let deviceId = Hackle.app()!.deviceId
let customData = ["hackleCustomId": deviceId]
AppsFlyerLib.shared().customData = customData
μ± μ€μΉ μ΄λ²€νΈ ($af_install)
μ± μ€μΉ μ΄λ²€νΈλ$af_install μ΄λΌλ μ΄λ²€νΈλ‘ ν΅ν΄μ μ μ‘λ©λλ€.
μΈμ± μ΄λ²€νΈ ($af_inapp)
μΆκ°λ‘ μΈμ± μ΄λ²€νΈ ν¬μ€νΈλ°±μ μ€μ νλ©΄, $af_inappμ΄λΌλ ννλ‘ μ±μ€νλΌμ΄μ΄λ₯Ό ν΅ν΄ μμ§λλ μ΄λ²€νΈλ₯Ό ν΅ν΄μͺ½μΌλ‘λ μ μ‘ν μ μμ΅λλ€. ν¬μ€νΈλ°±μΌλ‘ μμ§λλ μ΄λ²€νΈλ μ€μκ°μ±μ΄ μꡬλλ κ²½μ°μΈ μΈμ±λ©μμ§λ νΈμλ©μμ§ νΈλ¦¬κ±°λ‘ μ¬μ©ν μλ μκ³ , λ°μ΄ν° λΆμμμ μ ν μ¬λΆλ κΈμ‘ μ‘°ννλ λͺ©μ μΌλ‘λ νμ©ν μ μμ΅λλ€.

μΈμ± μ΄λ²€νΈ μ€μ
μ΄λ²€νΈ λ°μ μκ° μ‘°μ
κΈ°λ³Έμ μΌλ‘ ν¬μ€νΈλ°±μΌλ‘ μμ§λλ μ΄λ²€νΈλ μ±μ€νλΌμ΄μ΄μμ ν΅ν΄ μλ²λ‘ μ΄λ²€νΈκ° μ μ‘λλ μκ° κΈ°μ€μΌλ‘ μ μ₯λ©λλ€. μ΄κ²½μ° μ€μ μ΄λ²€νΈκ° λ°μν μκ°κ³Όλ μλΆμ λ μ°¨μ΄κ° λ μ μμ΅λλ€. ν¬μ€νΈλ°± νλΌλ―Έν°μμ Timestamp νλΌλ―Έν°λ₯Ό μΈμ€ν¨, μΈμ± μ΄λ²€νΈλ‘ μ μ‘νλ©΄, μ€μ μ±μ€νλΌμ΄μ΄μμ μ΄λ²€νΈκ° λ°μν μκ° κΈ°μ€μΌλ‘ μ΄λ²€νΈκ° μ μ₯λ©λλ€.

Timestamp
Updated 1 day ago