AppsFlyer Native Android SDK Implementation
AppsFlyer เป็นผู้ให้บริการวัดผลประสิทธิภาพโฆษณาสำหรับแอปพลิเคชันมือถือ หรือที่รู้จักในชื่อ Mobile Measurement Partner (MMP) ซึ่งจุดเริ่มต้นที่จะทำให้ AppsFlyer สามารถที่จะวัดผลบนแอปของเราได้นั้น ก็คือการติดตั้ง AppsFlyer SDK ลงในแอปนั่นเอง
SDK หรือ Software Development Kit เป็นเสมือน Kit เครื่องมือที่เราติดตั้งเพิ่มลงในแอปเพื่อตัวแอปมีความสามารถผ่านเทคโนโลยีของ AppsFlyer ซึ่งการติดตั้งเจ้าตัว SDK นี้จะมีความแตกต่างกันไปในแต่ละ App Developing Environment อย่างไรก็ตามทุก Enviroment จะมีลำดับขั้นตอนที่เหมือนกัน ซึ่งในโพสต์นี้จะขอยกตัวอย่างการติดตั้ง AppsFlyer SDK บน Native Android (Java)
เพื่อให้เห็นภาพชัดเจนมากยิ่งขึ้น เพื่อนๆสามารถดูตัวอย่างการติดตั้ง AppsFlyer SDK บน Salisa App ประกอบกันไปด้วยได้จาก Github Source Code ส่วนรายละเอียดในแต่ละขั้นตอนจะเป็นอย่างไร ไปดูกันเลย
1. Install SDK ผ่าน Gradle
Gradle เป็นเครื่องมืออัตโนมัติที่ใช้ในการสร้างและจัดการ project ถือเป็นมาตรฐานในการพัฒนาแอปบน Android เลย ซึ่งเจ้า Gradle นี้ก็จะช่วยให้เราสามารถ download AppsFlyer SDK มาได้อย่างอัตโนมัติ สำหรับใครที่ยังไม่มี Gradle สามารถดูราละเอียดวิธีการติดตั้งได้ ที่นี่
Step 1: ประกาศ Repositories
โดยให้เรามองหาไฟล์ build.gradle
ใน Android Project แล้ว declare the mavenCentral repository:
repositories {
mavenCentral()
}
Step 2: เพิ่ม Dependencies
เมื่อประกาศ repository แล้ว ก็สามารถดึง AppsFlyer Android SDK เวอร์ชั่นล่าสุดมาได้ โดยประกาศ Dependencies
dependencies {
implementation 'com.appsflyer:af-android-sdk:6.9.0'
}
ดูตัวอย่าง Source Code build.gradle
เนื่องจาก SDK มีการพัฒนาและอัพเดทอยู่สม่ำเสมอ เราจึงควรติดตาม AppsFlyer Android SDK release notes เพื่อทะยอยปรับเปลี่ยนไปใช้เวอร์ชันล่าสุดอยู่เสมอ
2. เพิ่ม Permissions ให้ SDK สามารถเข้าถึงข้อมูลที่จำเป็น
ในไฟล์ AndroidManifest.xml
ระบุ permissions ดังต่อไปนี้
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
ดูตัวอย่าง Source Code AndroidManifest.xml
3. Integrate AppsFlyer SDK
ลำดับถัดมา หลังจากที่เราทำการ refer ถึง AppsFlyer SDK แล้ว ในขั้นตอนนี้ จะเป็นการ Initialize หรือก็คือการเรียก SDK ขึ้นมาทำงานนั่นเอง
Step 1: Import AppsFlyerLib
import AppsFlyerLib
บนไฟล์ Global Application State
import com.appsflyer.AppsFlyerLib;
Step 2: Initialize the SDK
บนไฟล์เดียวกันนี้ ให้ทำการ เรียก function init
โดยเราจำเป็นที่จะต้องระบุ AF_DEV_KEY
ซึ่งเป็น Unique Key per AppsFlyer account สามารถหาได้จากเมนู App Setting AF_DEV_KEY
เป็นเสมือนเครื่องยืนยันและบอกให้ AppsFlyer รู้ว่าจะต้องส่งข้อมูลที่วัดผลได้จากแอปนี้ ไปยัง Account ไหนนั่นเอง
เรียก init
บน Global Application onCreate
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this);
Step 3: Starting the Android SDK
ขั้นตอนนี้เป็นขั้นตอนที่สำคัญมากๆ เพราะ AppsFlyer จะเริ่มวัดผลก็ต่อเมื่อ start
ถูกเรียกขึ้น โดยทั่วไปแล้ว เราจะแนะนำให้เรียก start
ให้เร็วที่สุด นั่นคือก็ที่หน้าแรกของแอปพลิเคชัน อย่างไรก็ตามนักพัฒนาก็สามารถ Defer SDK start ให้อยู่หลังการขอ consent ต่างๆ ก่อนก็ได้เช่นกัน
เรียก start
หลังจากเรียก init
บน Global Application onCreate
AppsFlyerLib.getInstance().start(this);
เป็นอันเสร็จสมบูรณ์ เพียงเท่านี้เราก็ได้ทำการติดตั้ง AppsFlyer SDK บน Native Android App ของเราเป็นที่เรียบร้อยแล้ว
ดูตัวอย่าง Source Code Application State
ตรวจสอบการติดตั้ง SDK
เราสามารถตรวจสอบว่าการติดตั้ง AppsFlyer SDK นี้สำเร็จ โดย
- เปิดใช้ debug mode
เรียก
setDebugLog
บน Global ApplicationonCreate
AppsFlyerLib.getInstance().setDebugLog(true);
- ตรวจสอบ install บน dashboard โดยตรง เราสามารถรอข้อมูลแสดงผลบน Overview dashboard ได้โดยตรงเลย แต่วิธีนี้อาจจะต้องรอเวลาประมาณ 10-15 นาที เนื่องจากข้อมูลการแสดงผลบน dashboard จะใช้เวลา process ไม่ได้เห็นเป็น real time ทันทีเหมือนอย่างวิธีแรก
Registering Test Devices
เนื่องจาก AppsFlyer มีระบบป้องกันการนับ install ซ้ำซ้อน โดย 1 device จะถูกบันทึก install เพียง 1 ครั้ง ภายใน re-attribution window ที่กำหนด โดยค่าเริ่มต้นของ re-attribution window นี้จะอยู่ที่ 90 วัน หมายความว่า 1 device จะถูกบันทึกเป็น 1 new install เพียง 1 ครั้งใน 90 วันนี้เท่านั้น หากแอปถูกลบและ reinstall ใหม่ใน 90 วันนี้ จะไม่ถูกบันทึกเป็น install ใหม่
ดังนั้นสำหรับนักพัฒนาที่จำเป็นต้องมีการตรวจสอบการติดตั้งแอป และลงใหม่อยู่บ่อยครั้ง เราจึงจำเป็นที่จะต้องแจ้ง AppsFlyer ให้บันทึก test device ของเราไว้ในระบบ เพื่อ bypass เงื่อนไข re-attribution นี้ การ register test device จะทำให้ re-attribution window ไม่ถูกนำมาคิดนั่นเอง
เพื่อนๆสามารถดูรายละเอียดการ register test device ได้จาก Knowledge Base ของ AppsFlyer โดย identifer ที่นิยมใช้ได้แก่ Android Advertising ID (GAID) และ iOS Identifier of Advertiser (IDFA)
Reference: AppsFlyer Dev Hub