Integrasi SDK AppsFlyer - Android

  • Pengiklan
  • Pengembang

android.pngVersi SDK: 4.10.3 (Catatan Rilis)

1. Garis Besar

SDK AppsFlyer menyediakan fungsi instalasi app dan perekaman event. Kami telah mengembangkan SDK yang sangat tangguh (lebih dari 7 miliar instalasi hingga saat ini), aman, ringan dan sangat mudah untuk ditanam.

Anda dapat merekam install, update, dan sesi serta merekam in-app event tambahan setelah install app (termasuk pembelian in-app, level game, dll.) untuk mengevaluasi ROI dan tingkat interaksi user.

 Penting!

SDK Android AppsFlyer kompatibel dengan OS Android 2.3 dan yang lebih tinggi.

SDK ini juga kompatibel dengan platform berbasis Android non-mobile seperti Smart TV, termasuk Fire TV Amazon.

Untuk app yang dikembangkan untuk Fire TV Amazon, gunakan Solusi atribusi Di Luar Bursa Aplikasi Resmi AppsFlyer.

Jika Anda bermigrasi dari SDK Android AppsFlyer V.3.3.x klik di sini.

 Tips

  • Bab 2 dan 3 MEWAJIBKAN implementasi Integrasi SDK DASAR, yaitu hanya atribusi install
  • Bab Merekam in-app event SANGAT DISARANKAN implementasinya
  • Fitur lain yang dijelaskan bersifat OPSIONAL untuk diimplementasikan, meskipun beberapa fitur mungkin Anda perlukan, tergantung pada logika bisnis app Anda. Misalnya, merekam pendapatan atau mendapatkan data konversi pada peluncuran pertama mungkin penting untuk alur app Anda
  • Sebelum Anda mulai mengintegrasikan SDK, tambahkan app ke akun AppsFlyer Anda.

2. Mulai Cepat

2.1 Mendownload SDK

Untuk mengunduh file jar SDK Android AppsFlyer terbaru, klik di sini.

Untuk memverifikasi integritas unduhan SDK, klik di sini.

Untuk informasi lebih lanjut tentang Sampel Aplikasi AppsFlyer, klik di sini.

2.2 Menanam SDK di Aplikasi

Anda dapat mengintegrasikan SDK AppsFlyer baik secara otomatis menggunakan Dependency Management Gradle atau secara manual menggunakan file SDK.jar.

2.3 Menambahkan SDK ke Proyek Anda

Cara termudah untuk mengintegrasikan SDK ke proyek Anda adalah dengan menggunakan Dependency Management Gradle. Informasi versi dapat dilihat di sini.

Jika Anda tidak menggunakan Gradle, unduh dan tambahkan file AF-Android-SDK.jar ke class path proyek.

Menambahkan Dependensi SDK Android AppsFlyer:

  1.  Buka proyek Anda (atau buat proyek baru), kemudian buka file your_app | build.gradle
  2.  Tambahkan kode berikut ke level Modul /app/build.gradle sebelum dependensi:
repositories { 
  mavenCentral()
}
  1. Tambahkan dependensi implementasi dengan AppsFlyer SDK versi terbaru.
  2. Tambahkan kode berikut ke level Module /app/build.gradle setelah repositori:
dependencies {
// always make sure to use the latest SDK version: 
// https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk
	implementation 'com.appsflyer:af-android-sdk:4.9.0'
	implementation 'com.android.installreferrer:installreferrer:1.0'
}

 Penting!

  • Dependensi 'com.android.installreferrer:installreferrer:1.0' diperlukan untuk mendukung API Play Install referrer Google.  Penggunaan API ini meningkatkan keakuratan atribusi, melindungi dari penipuan instalasi dan banyak lagi.
  • API ini didukung mulai dari SDK Android AppsFlyer versi 4.8.6 dan di atasnya. Jika memperbarui dari versi SDK lama,  selesaikan integrasi dependensi baru dengan memperbarui metode init SDK
  • Programmer yang menggunakan ProGuard dan ingin menggunakan referrer API baru milik Google wajib menetapkan aturan ProGuard berikut: -dontwarn com.android.installreferrer
  • Programmer yang tidak menggunakan build atau aar gradle dan ingin menggunakan referrer API baru milik Google harus menambahkan com.android.installreferrer jar secara manual sebagai sebuah file, dan pastikan bahwa hak akses berikut sudah ditambahkan: com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

2.4 Mengatur Hak Akses Yang Diperlukan

File AndroidManifest.xml wajib menyertakan hak akses berikut:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Optional : -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2.5 Mengatur BroadcastReceiver pada file AndroidManifest.xml

Tersedia dua pilihan untuk penerapan penerima broadcast perujuk instalasi:

Menggunakan Penerima Broadcast Tungga Menggunakan Penerima Broadcast Ganda

Jika tidak ada penerima yang mendengarkan di INSTALL_REFERRER, pada file AndroidManifest.xml, tambahkan penerima berikut dalam tag aplikasi:

<application>
...
...

	<receiver android:name="com.appsflyer.SingleInstallBroadcastReceiver" android:exported="true">
		<intent-filter>
			 <action android:name="com.android.vending.INSTALL_REFERRER" />
		 </intent-filter>
	</receiver>

...
...
</application>

 Tips

Jika Anda mendapatkan error "Unresolved class SingleInstallBroadcastReceiver" setelah menambahkan receiver ke AndroidManifest.xml, pastikan untuk membuat app terlebih dahulu.

3. Inisialisasi SDK

Inisialisasi SDK diselesaikan dalam dua tahap. Di tahap pertama DevKey diberikan bersama dengan conversionDataListener opsional. Pada tahap kedua, panggilan startTracking menandakan bahwa semua persiapan terkait sudah selesai (misalnya panggil setCustomerUserId) dan SDK dapat mulai merekam semua event.

Untuk menginisialisasi SDK, tambahkan kode berikut ini ke fungsi onCreate() Aplikasi:

import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerConversionListener;

public class AFApplication extends Application {
  private static final String AF_DEV_KEY = "";
  @Override
  public void onCreate() {
    super.onCreate();
    AppsFlyerConversionListener conversionDataListener = 
    new AppsFlyerConversionListener() {
      ...
    };
    AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionDataListener, getApplicationContext());
    AppsFlyerLib.getInstance().startTracking(this);  }
}

 Catatan

Anda dapat menunda panggilan ke startTracking dan menempatkannya di dalam fungsi OnCreate aktivitas mana pun yang relevan.

 Tips

Dependensi berikut: implementation 'com.android.installreferrer:installreferrer:1.0' Dan getApplicationContext() yang diberikan di metode berikut: AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext()); adalah prasyarat untuk pelaporan Referrer API Baru Google ke AppsFlyer.

Anda dapat mengakses kode dev dari Dashboard AppsFlyer pada bagian Konfigurasi yang berada di dalam Pengaturan Aplikasi:

API ini memungkinkan AppsFlyer mendeteksi instalasi, sesi, dan pembaruan.

4. Merekam In-App Event

In-App Event memberikan informasi tentang apa yang dilakukan user dalam aplikasi Anda. Sebaiknya luangkan waktu dan tentukan event yang ingin diukur agar Anda dapat mengukur ROI (Return on Investment) dan LTV (Lifetime Value).

Perekaman in-app event dilakukan dengan memanggil trackEvent dengan nama event dan parameter nilai. Lihat dokumentasi In-App Event  untuk detail lebih lanjut.

 Catatan

Nama Event Dalam Aplikasi tidak boleh lebih dari 45 karakter. Nama Event yang melebihi 45 karakter tidak muncul di dashboard, namun hanya tertera di Data mentah, API Pull dan API Push.

//konteks - use getApplicationContext()
//eventName adalah string apa pun untuk menentukan nama event.
//eventValues adalah peta parameter event yang meliputi rich event. 
public static void trackEvent(Context context, String eventName, Map eventValues);

Contoh: Level yang Diperoleh In-App Event

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL,9);
eventValue.put(AFInAppEventParameterName.SCORE,100);
AppsFlyerLib.getInstance().trackEvent(context,AFInAppEventType.LEVEL_ACHIEVED,eventValue);

Ini akan menghasilkan jenis event af_level_achieved dengan nilai event berikut:{af_level: 9, af_score: 100}

 Catatan

  • AppsFlyer mendukung karakter non-Inggris dengan event in-app atau dengan API SDK lainnya mulai dari SDK Android versi 4.8.1.
  • Jangan tambahkan simbol mata uang atau koma ke dalam angka karena tidak akan dikenali.

 Contoh Penggunaan

Map<String,Object> eventValues = new HashMap<>();
eventValues.put(AFInAppEventParameterName.REVENUE, 1200);
eventValues.put(AFInAppEventParameterName.CURRENCY, "JPY");
AppsFlyerLib.getInstance().trackEvent(this, AFInAppEventType.PURCHASE, eventValues);

record_in_app_event_android_studio.png

5. Melakukan Deep Linking

 Tips

Kami sangat menyarankan Deep Linking terintegrasi dalam aplikasi Anda. Deep Linking merupakan bagian penting dari kampanye penargetan ulang dan sangat dianjurkan penggunaannya saat menjalankan kampanye penargetan ulang.

Tambahkan baris berikut pada onCreate()untuk setiap aktivitas yang dapat digunakan untuk deep linking (termasuk aktivitas utama jika diperlukan):

AppsFlyerLib.getInstance().sendDeepLinkData(this);

Aktivitas yang ditujukan untuk dibuka menggunakan deep linking harus memiliki intent filter berikut pada definisi tindakan dalam file manifest. 

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="yourUniquescheme" />
</intent-filter>

Skema yang sudah dikonfigurasikan berkorelasi dengan nilai af_dp yang Anda sertakan pada link atribusi.

Untuk mendapatkan data tautan langsung, Anda harus menerapkan fungsi callbackonAppOpenAttribution yang dipanggil oleh SDK AppsFlyer. Penerapan ini menghasilkan Onelink/parameter link atribusi yang digunakan untuk memicu pembukaan app. Kemudian, Anda apa memparsing nilai dan menerapkan logika tersebut untuk memicu halaman app terkait.

void onAppOpenAttribution(Map<String,String> attributionData);

Untuk informasi lebih lanjut , klik di sini, atau tinjau artikel bagian Memperoleh Data Konversi.

6. Merekam Pendapatan

Gunakan parameter event af_revenue (AFInAppEventParameterName.REVENUE) untuk menghitung pendapatan sebagai bagian dari event in-app. Anda dapat mengisinya dengan nilai numerik, positif maupun negatif.

 Catatan

af_revenue adalah SATU-SATUNYA parameter event yang dianggap oleh AppsFlyer sebagai pendapatan nyata pada data lengkap dan dashboard. Untuk informasi lebih lanjut klik di sini.

Contoh: Pendapatan Event Dalam-Aplikasi

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"USD");
AppsFlyerLib.getInstance().trackEvent(getApplicationContext() , AFInAppEventType.PURCHASE , eventValue);

Hal ini menghasilkan event jenis af_purchase dengan nilai event berikut:

{af_content_id: “1234567”, af_content_type: “category_a”, af_revenue: 200, af_currency: “USD”}

Event pembelian di atas memiliki pendapatan $200 yang ditampilkan pada dashboard sebagai pendapatan.

 Catatan

Mengatur kode mata uang lokal user untuk pembelian in-app - kode mata uang harus berupa kode ISO 4217 yang terdiri dari 3 karakter. (defaultnya adalah USD). 

Anda dapat menentukan kode mata uang untuk semua event dengan memanggil metode berikut: AppsFlyer.setCurrencyCode("GBP");

 Penting!

JANGAN memformat nilai pendapatan dengan cara apa pun. Nilai tidak boleh berisi pemisah koma, simbol mata uang, atau teks. Misalnya, event pendapatan harus serupa dengan 1234.56.

Merekam Pendapatan Negatif

Jika Anda perlu merekam pendapatan negatif, misalnya saat user membatalkan pembelian atau menerima pengembalian dana, Anda dapat mengirimkan pendapatan negatif.

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,-200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"USD");
AppsFlyerLib.getInstance().trackEvent(getApplicationContext() , "cancel_purchase" , eventValue);

 Catatan

Pada kode di atas, perhatikan beberapa hal berikut:

  1. Nilai pendapatan didahului dengan tanda minus
  2. Nama event memiliki nama unik "cancel_purchase" - agar Anda dapat mengidentifikasi event pendapatan negatif di dashboard dan laporan data lengkap

7. Memperoleh Data Konversi

AppsFlyer memungkinkan Anda untuk mengakses data atribusi pengguna secara aktual untuk setiap instalasi baru, langsung dari SDK. Dengan ini, Anda dapat melayani pengguna dengan menyajikan konten yang dipersonalisasi atau mengirimkan halaman spesifik dalam aplikasi kepada mereka, yang secara signifikan dapat meningkatkan interaksi pengguna dengan aplikasi Anda.

Data konversi AppsFlyer yang berasal dari SDK Android dapat diakses dengan penerapan ConversionDataListener:

public interface AppsFlyerConversionListener {
    void onInstallConversionDataLoaded(Map<String,String> conversionData);
    void onInstallConversionFailure(String errorMessage);
}

Contoh:

AppsFlyerLib.getInstance().registerConversionListener(this, new AppsFlyerConversionListener() {
 @Override
 public void onInstallConversionDataLoaded(Map<String, String> conversionData) {
   for (String attrName : conversionData.keySet()) {
     Log.d("LOG_TAG", "attribute: " + attrName + " = " + conversionData.get(attrName));
   }
 }
 @Override
 public void onInstallConversionFailure(String errorMessage) {
   Log.d("LOG_TAG", "error getting conversion data: " + errorMessage);
 }
 @Override
 public void onAppOpenAttribution(Map<String, String> conversionData) {
 }
 @Override
 public void onAttributionFailure(String errorMessage) {
   Log.d("LOG_TAG", "error onAttributionFailure : " + errorMessage);
 }
});

8. Pengidentifikasi Pengguna

Memperoleh AppsFlyer Device ID

AppsFlyer device ID dibuat unik untuk setiap instalasi aplikasi baru. Gunakan API berikut untuk mendapatkan AppsFlyer Device ID:

public String getAppsFlyerUID(Context context);

Contoh Penggunaan:

String appsFlyerId = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

Mengatur ID Pengguna Pelanggan

Dengan mengatur ID pelanggan Anda sendiri, Anda dapat membuat referensi silang atas ID unik Anda dengan ID unik AppsFlyer dan ID perangkat lainnya. ID ini tersedia di laporan CSV AppsFlyer bersama dengan API Postback untuk referensi silang dengan ID internal Anda.

Cara mengatur ID Pengguna Pelanggan Anda:

public void setCustomerUserId(String id);

 

Contoh Penggunaan:

AppsFlyerLib.getInstance().setCustomerUserId("myId");

 Catatan

Sebaiknya atur ID Pengguna Pelanggan sesegera mungkin karena ID hanya terkait dengan event yang dilaporkan setelah ID diatur. Jika setCustomerUserId sudah dipanggil sebelum memanggil startTracking, ID Pengguna Pelanggan akan disertakan pada ekspor lengkap untuk install dan event. Jika diatur setelahnya, Anda akan melihat nilai tersebut hanya untuk event yang direkam setelah memanggil metode ini.

ID User Kustomer dapat juga digunakan untuk melengkapi integrasi dengan platform Analisis seperti Mixpanel dan Swrve.

 

Memperoleh ID Pengguna Pelanggan:

Untuk menghindari pengaturan nilai ID pengguna pelanggan lagi setelah peluncuran pertama, Anda dapat memeriksa apakah nilainya kosong atau tidak dengan menggunakan 

AppsFlyerProperties.getInstance().getString(AppsFlyerProperties.APP_USER_ID)

Untuk informasi lebih lanjut tentang ID Pengguna Pelanggan, klik di sini.

Google Advertising ID

AppsFlyer secara otomatis mengumpulkan google_advertising_id dari SDK Versi 4.8.0. Persyaratan untuk mengumpulkan ID Iklan Google hanya relevan untuk SDK versi 4.7.x dan di bawahnya.

IMEI dan Android ID

Secara default, IMEI dan Android ID tidak dikumpulkan oleh SDK jika versi OS lebih tinggi dari KitKat (4.4) dan perangkat berisi Google Play Services (aplikasi tertentu pada SDK versi 4.8.8 ke bawah membutuhkan GPS). 

Untuk mengirim ID ini secara eksplisit ke AppsFlyer, pengembang dapat menggunakan API berikut dan menempatkannya sebelum kode startTracking:

AppsFlyerLib.getInstance().setImeiData("IMEI_DATA_HERE");
AppsFlyerLib.getInstance().setAndroidIdData("ANDROID_ID_DATA_HERE");

Jika aplikasi TIDAK berisi Google Play Services, IMEI dan Android ID dikumpulkan oleh SDK. Namun, aplikasi yang berisi Google play services harus menghindari pengumpulan IMEI karena melanggar kebijakan Google Play.

Pengembang dapat memilih untuk tidak mengumpulkan IMEI dan Android ID dengan menggunakan API berikut:

AppsFlyerLib.getInstance().setCollectIMEI(false);
AppsFlyerLib.getInstance().setCollectAndroidID(false);

 Peringatan

Setidaknya satu pengidentifikasi perangkat, GAID, Android ID atau IMEI, HARUS dikumpulkan untuk memungkinkan atribusi yang tepat.

9. Fitur Pilihan

Mengukur Uninstall

AppsFlyer memungkinkan Anda untuk mengukur tingkat uninstall user yang berasal dari berbagai sumber.

Untuk menyelesaikan proses ini secara menyeluruh dan tepat baca di sini.

Rekaman Notifikasi Push

AppsFlyer memungkinkan Anda untuk mengukur push notification sebagai bagian dari kampanye penargetan ulang.

Untuk mengaktifkan fitur ini, panggil metode berikutnya di dalam metode onCreate dari setiap Aktivitas yang akan diluncurkan saat mengklik notifikasi:

AppsFlyerLib.getInstance().sendPushNotificationData(this);

Muatan data harus berisi objek: af dengan string key-value yang relevan:

Contoh:

{ 
  "data":{ 
   "score":"5x1",
   "time":"15:10",
   "af":{ 
     "c":"test_campaign",
     "is_retargeting":"true",
     "pid":"push_provider_int"
   }
  }
}
{

{ 
  "data":{ 
   "score":"5x1",
   "time":"15:10",
   "click_action":"com.example.someAction",
   "af":{ 
     "c":"test_campaign",
     "is_retargeting":"true",
     "pid":"push_provider_int"
   }
  }
}

 Catatan

Untuk informasi lebih lanjut tentang pengukuran push notification, baca di sini.

Atribusi Promosi Silang

AppsFlyer memungkinkan Anda untuk mengatribusikan dan merekam install yang berasal dari promosi silang salah satu app Anda dari dalam app yang saat ini dimiliki oleh user. App promosi silang dapat menjadi faktor pertumbuhan utama dalam mendorong install tambahan untuk aplikasi Anda.Untuk detail lebih lanjut, lihat artikel Atribusi Promosi Silang, di sini.

Atribusi Undangan Pengguna

AppsFlyer memungkinkan Anda untuk mengatribusi dan merekam install yang berasal dari undangan user di dalam app Anda. Mengizinkan user yang ada untuk mengundang teman dan kontak mereka sebagai user baru bagi app Anda dapat menjadi faktor pertumbuhan utama untuk app Anda.

Untuk detail lebih lanjut, lihat artikel Atribusi Undangan User, di sini.

Mengatur Kode Mata Uang

Anda dapat mengangatur kode mata uang global menggunakan API di bawah ini, selain dari kode mata uang spesifik yang dapat digunakan sebagai bagian setiap event dalam-aplikasi yang dikirim ke AppsFlyer. Kode mata uang global digunakan jika af_currency

AFInAppEventParameterName.CURRENCY

tidak dikirim sebagai bagian dari event dalam-aplikasi.

Nilai default adalah USD. Anda dapat melihat kode mata uang ISO yang dapat diterima di sini.

Gunakan API berikut untuk menentukan kode mata uang:

public void setCurrencyCode(String currencyCode);

Contoh Penggunaan:

AppsFlyerLib.getInstance().setCurrencyCode("GBP");

Validasi Pembelian Dalam-Aplikasi

SDK AppsFlyer menyediakan verifikasi server untuk pembelian in-app. Untuk mengaktifkan validasi pembelian, panggil metode validateAndTrackInAppPurchase di dalam fungsi onActivityResult.

Panggilan ini secara otomatis menghasilkan event dalam-aplikasi af_purchase.

public static void validateAndTrackInAppPurchase(Context context, 
String publicKey, String signature, String purchaseData, 
String price, String currency, HashMap<String, String> additionalParameters);

Panggilan ini memiliki dua blok callback, satu untuk ‘Sukses’ dan satu lainnya untuk ‘Gagal’ (untuk alasan apa pun termasuk kegagalan validasi).

AppsFlyerLib.getInstance().registerValidatorListener(this,new
   AppsFlyerInAppPurchaseValidatorListener() {
     public void onValidateInApp() {
       Log.d(TAG, "Purchase validated successfully");
     }
     public void onValidateInAppFailure(String error) {
       Log.d(TAG, "onValidateInAppFailure called: " + error);
     }
});

Contoh Penggunaan:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == 1001) {
    String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
    String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");
    if (resultCode == RESULT_OK) {
      HashMap<String,String> event = new HashMap<>();
      event.put(AFInAppEventParameterName.PRICE,"9");
      AppsFlyerLib.getInstance().validateAndTrackInAppPurchase(getApplicationContext(),publicKey, dataSignature, purchaseData, "3.00", "ILS", event);
    }
  }
} 

 Catatan

Memanggil validateAndTrackInAppPurchase secara otomatis akan menghasilkan in-app event af_purchase. Anda tidak perlu mengirim event ini sendiri.

Menganonimkan Data Pengguna

AppsFlyer memberi Anda metode untuk menganonimkan identifier pengguna tertentu dari analisis AppsFlyer. Metode ini sesuai dengan persyaratan privasi terbaru dan sesuai kebijakan data dan privasi Facebook. Nilai defaultnya adalah NO, yang berarti penganoniman secara default tidak dilakukan.

Gunakan API ini saat inisialisasi SDK untuk menganonimkan instalasi, event, dan sesi pengguna secara eksplisit:

public void setDeviceTrackingDisabled(boolean isDisabled);

Contoh Penggunaan:

AppsFlyerLib.getInstance().setDeviceTrackingDisabled(true);

Anda dapat membatalkan penganoniman dengan memanggil deviceTrackingDisabled lagi, dan mengaturnya ke false.

 Peringatan

Penganoniman user berdampak KRUSIAL pada informasi atribusi Anda. Gunakan opsi ini HANYA untuk wilayah yang secara legal mencegah Anda mengumpulkan informasi pengguna.

Waktu Antar Sesi Kustom

Secara default, setidaknya ada jeda selama 5 detik antara 2 peluncuran app agar terhitung sebagai 2 sesi terpisah (lebih lanjut tentang menghitung sesi).
Namun, Anda dapat menggunakan API berikut untuk menentukan suatu nilai sebagai waktu minimum yang diperlukan antar-sesi:
AppsFlyerLib.setMinTimeBetweenSessions(int seconds);
Perlu diperhatikan bahwa pengaturan nilai tinggi ke waktu kustom antar-peluncuran dapat berdampak buruk pada API yang bergantung pada data sesi, seperti tautan langsung.

Sesi Latar Belakang untuk Aplikasi Utilitas

Jika aplikasi Anda adalah aplikasi utilitas yang berjalan di latar belakang, Anda dapat menggunakan API ini di onCreate() - aktivitas Anda

public void reportTrackSession(Context context);

Contoh Penggunaan:

AppsFlyerLib.getInstance().reportTrackSession(context);

Atribusi Di Luar App Store

 Catatan

Google Play adalah bursa aplikasi default. Lewati bagian ini jika aplikasi hanya dipublikasikan di Google Play.

Untuk merekam install di luar Google Play, atur saluran/bursa aplikasi pada AndroidManifest.xml dengan nama saluran unik atau nama bursa aplikasi apa pun untuk setiap APK. Nilai SALURAN sensitif huruf besar dan kecil.

Contoh:

<meta-data android:name="CHANNEL" android:value="Amazon" />
<meta-data android:name="CHANNEL" android:value="Standalone"/>
<meta-data android:name="CHANNEL" android:value="Verizon" />

 Catatan

Anda harus mengonfigurasikan nilai SALURAN di dashboard AppsFlyer saat mengatur aplikasi.

Letakkan tag meta-data di dalam tag <application>.

Untuk detail lebih lanjut tentang cara merekam install untuk aplikasi di luar bursa aplikasi resmi, baca di sini.

Opt-Out

Dalam beberapa kasus ekstrem, Anda mungkin diharuskan untuk mematikan semua fungsi SDK karena pemenuhan hukum dan privasi. Tindakan ini dapat dilakukan dengan isStopTracking API. Setelah API dipanggil, SDK kami tidak akan lagi berkomunikasi dengan server dan berhenti berfungsi.

AppsFlyerLib.getInstance().stopTracking(true, context);

Ada beberapa skenario berbeda untuk opt-out user. Kami sangat menyarankan agar mengikuti instruksi yang tepat untuk skenario tersebut, yang relevan untuk app Anda.

SDK dapat diaktifkan kembali dengan memanggil API yang sama dalam event apa pun, tetapi dengan nilai false.

 Penting

Jangan panggil trackAppLaunch jika isStopTracking diatur ke true

Untuk memulai ulang fungsi SDK setelah stopTracking diatur ke false, gunakan API SDK berikut:

AppsFlyerLib.getInstance().trackAppLaunch(getApplicationContext(), AF_DEV_KEY);

 Peringatan

Gunakan API stopTracking hanya jika Anda ingin sepenuhnya mengabaikan fungsi SDK user. Penggunaan API ini berdampak KRITIS pada atribusi, pengumpulan data, dan mekanisme deep linking Anda.

Penundaan inisialisasi SDK untuk customerUserID

Anda dapat menunda inisialisasi SDK hingga customerUserID ditentukan. Fitur ini memastikan SDK tidak mulai berfungsi sampai customerUserID tersedia. Jika API ini digunakan, semua in-app event dan panggilan API SDK lainnya akan dibuang sampai customerUserID tersedia dan direkam.

Untuk menunjukkan bahwa SDK harus menunda inisialisasi bagi id user kustomer, panggil

AppsFlyerLib.getInstance().waitForCustomerUserId(true);

segera sebelum metode init(). Bagian lain inisialisasi SDK tidak boleh berubah.

Setelah customerUserID disediakan, panggil

AppsFlyerLib.getInstance().setCustomerIdAndTrack("customer_id", this);

untuk memberikan SDK dengan id user pelanggan yang terkait dan memulai SDK.

Kode harus terlihat seperti berikut:
public class AFApplication extends Application {
  private static final String AF_DEV_KEY = ;
  @Override
  public void onCreate() {
    super.onCreate();
    AppsFlyerConversionListener conversionDataListener = 
    new AppsFlyerConversionListener() {
      ...
    };
    AppsFlyerLib.getInstance().waitForCustomerUserId(true); 
    AppsFlyerLib.getInstance().init(AF_DEV_KEY, getConversionListener(), getApplicationContext());
    AppsFlyerLib.getInstance().startTracking(this);
    // Do your magic to get the customerUserID
    // ...
    // any AppsFlyer SDK code invoked here will be discarded
   //Call the following API once the customerUserID is available:
 AppsFlyerLib.getInstance().setCustomerIdAndTrack("customer_id", this);
  }
}

 Peringatan

Gunakan API ini hanya jika API sesuai untuk logika bisnis Anda. Penggunaan API ini meningkatkan peluang untuk perbedaan dan mungkin membuat aplikasi lebih rentan terhadap kecurangan.

Mengatur Data Kustom Tambahan

API setAdditionalData diperlukan untuk integrasi dengan beberapa platform partner eksternal di level SDK, termasuk Segment, Adobe, dan Urban Airship. Gunakan API ini hanya jika artikel integrasi platform secara khusus menyatakan bahwa API setAdditionalData diperlukan. Berikut ini adalah contoh kode untuk pengimplementasian setAdditionalData di Android:

HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("custom_param_1","value_of_param_1");
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

Atribusi untuk Aplikasi Pra-Instal

Tersedia berbagai metode atribusi Android untuk aplikasi pra-instal.

Untuk informasi lebih lanjut, klik di sini.

Mengatur Listener Permintaan Pengukuran

Jika Anda ingin menerima konfirmasi bahwa permintaan pengukuran telah berhasil diterima oleh server AppsFlyer, Anda dapat mengimplementasikan listener AppsFlyerTrackingRequestListener.

Metode callback onTrackingRequestSuccess() dipanggil untuk setiap 200 respons atas permintaan atribusi yang dibuat oleh SDK.

Metode callback onTrackingRequestFailure(String error) dipanggil untuk setiap respons lainnya dan mengembalikan respons sebagai string yang error.

Contoh Implementasi

AppsFlyerLib.getInstance().startTracking(this.getApplication(),"devKey", myListener());
private AppsFlyerTrackingRequestListener myListener() {  
  return new AppsFlyerTrackingRequestListener() { 
    @Override public void onTrackingRequestSuccess() { 
      Log.d("Debug", "Got 200 response from server");  
    }  @Override public void onTrackingRequestFailure(String error) { 
      Log.d("Debug", error); 
      }  
    }; 
  }

Menyelesaikan Masalah Penggabungan URL Deep Link

Jika menggunakan OneLink yang mendukung Link App Android dan menggabungkan keduanya dengan Link Universal Pihak Ke-3, Anda dapat menggunakan API setResolveDeepLinkURLs untuk memberi tahu SDK AppsFlyer domain klik pemicu app yang harus diselesaikan oleh SDK, dan juga untuk mengekstrak OneLink yang mendasarinya. Cara ini akan memungkinkan Anda untuk mempertahankan tautan langsung dan atribusi sembari menggabungkan OneLink dengan Link Universal pihak ke-3. Anda harus memanggil API ini sebelum inisialisasi SDK.

AppsFlyerLib.getInstance().setResolveDeepLinkURLs("example.com", "click.example.com");

10. Menguji Integrasi SDK

Untuk menguji integrasi SDK sebelum dan sesudah mengirimkannya ke Google Play Store klik di sini.

Sekarang Anda dapat mulai mengukur hasil media source yang Anda gunakan.

11. Masalah Yang Diketahui

Tambahkan kode berikut ke file aturan ProGuard jika Anda menggunakan ProGuard dan mendapatkan peringatan  mengenai kelas AFKeystoreWrapper kami:

-keep class com.appsflyer.** { *; }
Apakah artikel ini membantu?
20 dari 25 menganggap ini berguna

Komentar

0 komentar

Harap login untuk memberikan komentar.