หลังจากที่สร้าง Deep Link แล้ว คุณจะต้องเปิดใช้ใน SDK การวัดผลเพื่อนำไปใช้กับ App Campaign
บทความนี้อธิบายวิธีเปิดใช้การทำ Deferred Deep Link (DDL) ใน App Attribution Partner (AAP) บุคคลที่สามที่รองรับ หรือใน SDK ของ Google Analytics สำหรับ Firebase (GA4F) เวอร์ชันล่าสุด ดูวิธีติดตามเครื่องมือวัด Conversion ของแอปบนอุปกรณ์เคลื่อนที่ด้วยเครื่องมือของบุคคลที่สาม
ก่อนเริ่มต้น
หากต้องการเปิดใช้ DDL ใน AAP ที่รองรับ คุณต้องมี Deep Link ที่ใช้งานได้ซึ่งรวมอยู่ในฟีดที่แนบมาอย่างถูกต้องหรือส่งเป็น DDL ของกลุ่มโฆษณา
วิธีการ
วิธีเปิดใช้งาน DDL ใน AAP ที่รองรับ
AAP บุคคลที่สามที่ Google รองรับในปัจจุบันสำหรับ DDL มีดังนี้
- Adjust
- AppsFlyer
- Branch
- Kochava
- Singular
ทำตามขั้นตอนด้านล่างเพื่อเปิดใช้ DDL ใน AAP ที่เลือก
Adjust
AppsFlyer
- ใน AppsFlyer ให้คลิก Configuration > Integrated Partners จากนั้นเลือก Google Ads (AdWords)
- ในแท็บการผสานรวม ให้เปิดใช้ "การทำ Deferred Deep Link ด้วยฟีด Google"
- คลิก Save integration
Branch
Kochava
Singular
ดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตาม Conversion ของแอปด้วย App Attribution Partner
วิธีเปิดใช้งาน DDL ใน SDK ของ GA4F
คุณเปิดใช้งาน DDL ใน SDK ของ GA4F ได้ด้วย Android เวอร์ชัน 17.2.0 ขึ้นไปโดยทําตามขั้นตอนต่อไปนี้
ขั้นตอนการเปิดใช้งาน DDL ใน SDK ของ GA4F
1. กําหนดค่าแอปให้ใช้ Google Analytics สำหรับ Firebase
ในแอป build.gradle ให้นำทรัพยากร Dependency ใน firebase-core
ออกทั้งหมด จากนั้นเพิ่มหรืออัปเดตทรัพยากร Dependency ใน firebase-analytics
เวอร์ชัน 17.2.0 ขึ้นไป ตัวอย่างด้านล่างใช้ SDK เวอร์ชันใหม่
dependencies {
...
implementation 'com.google.firebase:firebase-analytics:21.0.0'
...
}
2. เปิดใช้ฟีเจอร์ในแอป
แก้ไขไฟล์ Manifest ของแอปพลิเคชันโดยเพิ่มแท็กข้อมูลเมตาต่อไปนี้ลงในแท็กของแอปพลิเคชัน
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myawesome.app">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainActivity">
<!-- ค่าที่ต้องเพิ่มเพื่อเปิดใช้ Deferred Deep Link -->
<meta-data android:name="google_analytics_deferred_deep_link_enabled" android:value="true"/>
<activity
android:name=".MainActivity" >
</activity>
</application>
</manifest>
เมื่อเปิดใช้แล้ว GA4F จะดึงข้อมูล Deep Link ที่กําหนดค่าเมื่อเริ่มต้นแอปสําหรับแคมเปญที่เกี่ยวข้องที่คุณกําหนดค่าไว้
3. บันทึก Deep Link
ตั้งค่า Listener การเปลี่ยนแปลง SharedPreferences ภายในคลาสกิจกรรมการเปิดใช้งานหลัก ซึ่งจะทริกเกอร์เมื่อมี DDL พร้อมใช้งาน หากคุณบันทึก Listener ในวงจรช่วงต่อมาของแอป ระบบอาจเรียก Deep Link อยู่แล้ว ในกรณีนี้ Listener จะไม่ทริกเกอร์ และคุณจะมองหาค่าของ Deep Link ได้ทันทีโดยอ่าน SharedPreferences
GA4F จัดเก็บ Deep Link ไว้ในไฟล์ SharedPreferences google.analytics.deferred.deeplink.prefs
ด้วยคีย์ ldeeplink
และยังจัดเก็บการประทับเวลาการคลิกโฆษณาด้วยคีย์ timestamp
ไว้ในไฟล์ SharedPreferences เดียวกันด้วย โปรดทราบว่ารูปแบบการประทับเวลาคือไมโครวินาที (มิลลิวินาทีตามด้วยจุดและไมโครวินาที) และจัดเก็บไว้ใน SharedPreferences โดยใช้ Long เมื่อประเภทเป็น Double ใช้ Double.longBitsToDouble(...) เพื่อแยกวิเคราะห์ค่าจริง
ตัวอย่าง
/**
* กิจกรรมการเปิดใช้งานหลักของแอป
*/
public class MainActivity extends AppCompatActivity {
private SharedPreferences preferences;
private SharedPreferences.OnSharedPreferenceChangeListener deepLinkListener;
@Override
protected void onStart() {
super.onStart();
preferences.registerOnSharedPreferenceChangeListener(deepLinkListener);
}
@Override
protected void onStop() {
super.onStop();
preferences.unregisterOnSharedPreferenceChangeListener(deepLinkListener);
deepLinkListener = null;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences =
getSharedPreferences("google.analytics.deferred.deeplink.prefs", MODE_PRIVATE);
deepLinkListener = (sharedPreferences, key) -> {
Log.d("DEEPLINK_LISTENER", "Deep link changed");
if ("deeplink".equals(key)) {
String deeplink = sharedPreferences.getString(key, null);
Double cTime = Double.longBitsToDouble(sharedPreferences.getLong("timestamp", 0));
Log.d("DEEPLINK_LISTENER", "Deep link retrieved: " + deeplink);
showDeepLinkResult(deeplink);
}
};
}
public void showDeepLinkResult(String result) {
String toastText = result;
if (toastText == null) {
toastText = "The deep link retrieval failed";
} else if (toastText.isEmpty()) {
toastText = "Deep link empty";
}
Toast.makeText(MainActivity.this, toastText, Toast.LENGTH_LONG).show();
Log.d("DEEPLINK", toastText);
}
}
4. เตรียมข้อมูลสำหรับการทดสอบเชิงวินิจฉัย
หากต้องการตรวจสอบการใช้งาน ให้ไปหารหัสโฆษณาสำหรับอุปกรณ์ที่ต้องการใช้ทดสอบ คุณสามารถใช้คําสั่งต่อไปนี้เพื่อตั้งค่า DDL ที่แอปจะได้รับ
"googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<รหัสโฆษณาสำหรับอุปกรณ์>>&id_type=adid&bundleid=<<แพ็กเกจแอปพลิเคชัน>>&deeplink=<<Deep Link ที่ต้องการรับ>>&ddl_test=1"
หากต้องการตรวจสอบว่าตั้งค่า Deep Link ถูกต้องหรือไม่ ให้ใช้คําขอนี้เพื่อยืนยันการตอบกลับ
Deep Link ทดสอบนี้จะหมดอายุหลังผ่านไป 24 ชั่วโมง ทําขั้นตอนนี้ซ้ำหาก Deep Link ทดสอบหมดอายุ
5. เปิดใช้โหมดทดสอบสําหรับการดึงข้อมูล DDL ทดสอบ
เปิดใช้โหมดทดสอบ DDL เพื่อเริ่มการทดสอบในอุปกรณ์
adb shell setprop debug.deferred.deeplink << แพ็กเกจแอปพลิเคชัน>>
จากนั้นเปิดใช้โหมดแก้ไขข้อบกพร่องในอุปกรณ์ เริ่มใช้แอปและตรวจสอบจาก Logcat ว่าข้อความในบันทึกแสดง gmp_version
เป็นอย่างน้อย 18200
การค้นหาคีย์เวิร์ด "deferred
" จะกรองข้อความการแก้ไขข้อบกพร่องทั้งหมดจาก Google Analytics สําหรับ Firebase ที่เกี่ยวข้องกับฟังก์ชันการทํางานนั้น
ตัวอย่าง
D/FA: Deferred Deep Link feature enabled.
FA-SVC: Uploading data. app, uncompressed size, data: << แพ็กเกจแอปพลิเคชัน>>,
…
gmp_version: 18200