Sekilas: Bekerja samalah dengan pengembang aplikasi seluler atau CTV Anda untuk mengintegrasikan dan menginstal SDK ke aplikasi Android atau iOS. Setelah tugas integrasi dasar selesai, aplikasi Anda siap untuk atribusi instalasi dan pengukuran in-app event.
Mengambil kode pengembang
Sebelum pengembang Anda dapat menginstal dan mengintegrasikan SDK, Anda harus mengambil kode pengembang. AppsFlyer menggunakan kode pengembang untuk mengidentifikasi akun Anda secara unik. Kode pengembang bersifat wajib karena memungkinkan SDK mengirim dan mengambil data milik akun Anda dengan aman.
Untuk mengambil kode pengembang Anda:
- Di AppsFlyer, buka Konfigurasi > Pengaturan Aplikasi.
- Salin kode pengembang, dan kirimkan ke pengembang seluler Anda.
- Berikan instruksi kepada pengembang seluler Anda untuk menginstal dan mengintegrasikan SDK.
Di mana memulai SDK?
Saat merencanakan integrasi SDK AppsFlyer, keputusan pertama yang harus Anda buat adalah di mana menginisialisasi dan memulai SDK dalam alur peluncuran aplikasi Anda.
Aturan dasarnya adalah agar SDK mulai mengirim data sesegera mungkin setelah meluncurkan aplikasi.Hal ini memastikan bahwa SDK menangkap kejadian penginstalan dan semua kejadian dalam aplikasi lainnya yang terjadi dalam sesi tersebut.
Namun, untuk mematuhi peraturan menjaga privasi seperti GDPR dan CCPA, sering kali pengiriman data ke AppsFlyer perlu ditunda hingga pengguna menyetujui untuk membagikan informasi mereka.
Memulai SDK di Android asli
PILIH DI KELAS APA UNTUK MEMULAI SDK
Pilih apakah akan memulai SDK di kelas Application
global atau kelas Activity
:
-
Memulai SDK di kelas
Application
global: Secara umum, menginisialisasi SDK di kelas/subkelasAplikasi
global adalah praktik yang baik karena kelasApplication
dimuat dan diinisialisasi sebelum UI aplikasi apa pun ditampilkan. Hal ini memastikan bahwa SDK dapat dimulai dalam skenario apa pun, termasuk deep linking. -
Mulai SDK di kelas
Activity
(awal tertunda) untuk memungkinkan pengguna ikut serta dalam berbagi data. Hal ini karena untuk mendapatkan izin pengguna memerlukan antarmuka pengguna (UI) yang dirender dalam kelasActivity
.
INSTRUKSI PENGEMBANG ANDROID
- Beri tahu pengembang tentang keputusan Anda tentang hal-hal berikut:
- Di kelas apa -
Application
atauActivity
- untuk memulai SDK? - Skenario opt-in/opt-out mana yang akan digunakan?
- Di kelas apa -
- Kirimkan tautan referensi berikut kepada pengembang Anda:
Memulai SDK di iOS asli
TUNDA MULAI SDK DI IOS
Pertimbangan penting saat merencanakan cara memulai SDK adalah apakah akan menunda start
hingga izin pengguna diberikan.
SDK menyediakan metode waitForATTUserAuthorization
, yang memungkinkan Anda untuk mengonfigurasi berapa lama SDK harus menunggu persetujuan pengguna sebelum mengirim data ke server AppsFlyer.
Untuk informasi selengkapnya tentang aliran data metode dan interaksinya dengan kerangka kerja ATT iOS, lihat bagian dukungan Konfigurasikan Transparansi Pelacakan Aplikasi (ATT) .
INSTRUKSI PENGEMBANG IOS
Bagikan dengan pengembang Anda informasi berikut:
- Berapa lama waktu tunggu sebelum mengirimkan data ke AppsFlyer dalam hitungan detik?
- Skenario opt-in/opt-out mana yang akan digunakan?
- Tautan Pengembang:
- Memulai iOS SDK untuk panduan pengembang dan referensi tentang cara memulai SDK.
-
Konfigurasikan dukungan Transparansi Pelacakan Aplikasi (ATT) untuk informasi tentang aliran data metode
waitForATTUserAuthorization
dan cara interaksinya dengan kerangka kerja ATT iOS -
Mengaktifkan dukungan Transparansi Pelacakan Aplikasi (ATT) untuk panduan pengembang dan referensi pada
waitForATTUserAuthorization
Memulai SDK di Unity
Kirimkan artikel Dev Hub ini kepada pengembang Anda tentang cara memulai SDK.
Memulai SDK di React asli
Kirimkan artikel Dev Hub ini kepada pengembang Anda tentang cara memulai SDK.
Pilih strategi untuk menjaga privasi Anda
Pilih cara menjaga privasi pengguna. Misalnya, pilih antara menghentikan SDK saat instalasi, mencegah berbagi data dengan pihak ketiga, menganonimkan data pengguna, atau menonaktifkan pengidentifikasi tertentu.
Untuk informasi selengkapnya tentang berbagai skenario penyisihan yang tersedia, lihat Skenario Keikutsertaan dan Ketidakikutsertaan.
Atribusi
SDK mengumpulkan pengidentifikasi untuk tujuan atribusi. Untuk memastikan bahwa instalasi dicatat dan diatribusikan dengan benar, tinjau dan ikuti pedoman berikut.
Semua platform
Pengenal unik untuk penginstalan
ID AppsFlyer dibuat secara otomatis untuk setiap penginstalan aplikasi baru. Tidak ada tindakan yang diperlukan oleh pemasar.
Anda dapat menggunakan pengenal ini untuk melakukan tindakan berikut:
- Mengirim in-app event server-ke-server.
- Mencocokkan ID AppsFlyer dengan catatan pengguna di sistem back end
- Unduh laporan in-app event data lengkap dan gunakan appsflyer_id untuk menganalisis perilaku dan perjalanan pengguna.
Mengintegrasikan pengenal unik dari sistem BI Anda dengan AppsFlyer
Menetapkan ID pengguna Pelanggan (CUID) Anda sendiri di SDK AppsFlyer untuk referensi silang ID unik dari sistem BI Anda dengan ID AppsFlyer dan pengidentifikasi lainnya. CUID tersedia di laporan data lengkap AppsFlyer. Anda juga dapat menggunakannya dalam API postback untuk referensi silang dengan ID internal Anda.
Untuk mempelajari lebih lanjut tentang CUID, lihat artikel ini.
Khusus Android
Bagian berikut menjelaskan pertimbangan atribusi untuk Google Play Store atau toko aplikasi pihak ketiga.
Aplikasi atribut yang dipublikasikan di Google Play
PERUJUK INSTALASI GOOGLE PLAY
API Perujuk Instalasi Google Play meningkatkan akurasi atribusi , melindungi dari penipuan penginstalan, dan memungkinkan pengambilan data rujukan yang aman dari Google Play (misalnya, versi aplikasi pada saat aplikasi pertama kali diinstal).
Sebaiknya Anda memberikan instruksi kepada pengembang Anda untuk menambahkan Google Play Install Referrer API.
GAID
Mulai SDK V4.8.0, AppsFlyer secara otomatis mengumpulkan pengenal perangkat ini.
Atribusikan aplikasi di toko aplikasi pihak ketiga
Dengan AppsFlyer, Anda dapat mengatribusikan instalasi yang berasal dari app store pihak ketiga, seperti Amazon, Opera, GetJar, Baidu, dan Huawei. Hal ini memungkinkan Anda untuk mempromosikan aplikasi Anda dan menjangkau audiens yang lebih besar di pasar yang tidak menyediakan Google Play Store.
AppsFlyer mendukung atribusi dalam konteks toko aplikasi pihak ketiga sebagai berikut:
-
IMEI atau ID Android: SDK tidak secara otomatis mengumpulkan IMEI atau ID Android. Namun, jika ada kebutuhan untuk mengumpulkan pengidentifikasi ini (misalnya, untuk aplikasi di pasar domestik Tiongkok) pengembang Anda dapat menerapkan salah satu jenis pengumpulan berikut:
- Pengumpulan manual: Aplikasi meneruskan IMEI atau ID Android ke SDK menggunakan
setImeiData
atausetAndroidIdData
API (lihat referensi fungsi pada tab di bawah). SDK mengirimkan data ke server AppsFlyer.Lihat referensi Android SDK untuk:
Lihat referensi Unity SDK untuk:
- Ikut serta dalam pengumpulan ID perangkat: Memaksa SDK mengumpulkan IMEI atau ID Android menggunakan setCollectIMEI dan setCollectAndroidID (lihat referensi fungsi pada tab di bawah).
Lihat referensi Android SDK untuk:
Lihat referensi Unity SDK untuk:
Lihat referensi React asli untuk:
- Pengumpulan manual: Aplikasi meneruskan IMEI atau ID Android ke SDK menggunakan
- OAID: Mengatribusikan penginstalan dari app store Android pihak ketiga. Untuk informasi lebih lanjut, lihat panduan penerapan OAID.
- Perujuk instalasi: SDK mendukung pengambilan data rujukan dari Samsung Gallery dan Huawei AppGallery.
Khusus iOS
Bagian berikut mencakup informasi penting tentang dukungan untuk perangkat iOS 14+.
Mengonfigurasi dukungan App Tracking Transparency (ATT)
LATAR BELAKANG
Dimulai dari iOS 14.5, pengumpulan IDFA memerlukan persetujuan pengguna. Secara praktis, ini berarti akses IDFA diatur oleh kerangka kerja Transparansi Pelacakan Aplikasi (ATT). Pada perangkat iOS 14+, SDK menggunakan kerangka kerja ATT untuk mendapatkan akses ke IDFA perangkat. Untuk pengenalan ATT, lihat Prinsip ATT.
Lihat Dev Hub untuk petunjuk pengembang dalam mengimplementasikan ATT.
Lihat Dev Hub untuk petunjuk pengembang dalam mengimplementasikan ATT.
Ketika atribusi terjadi menggunakan IDFA, penting agar IDFA dikirim pada peluncuran pertama. Karena alasan ini, SDK menyediakan metode waitForATTUserAuthorization
.
Ikhtisar waitForATTUserAuthorization
Penting!
Jangan panggil metode waitForATTUserAuthorization
jika Anda tidak ingin menjalankan prompt ATT.
waitForATTUserAuthorization
memungkinkan Anda untuk mengonfigurasi berapa lama SDK harus ditangguhkan dan menunggu status ATT sebelum mengirim data ke server AppsFlyer.
Saat pengguna meluncurkan aplikasi, status ATT notDetermined. Selama waktu waitForATTUserAuthorization
, SDK mengantrekan event peluncuran dan in-app event berturut-turut dalam memori, serupa dengan cara event offline dicatat:
- Jika pengguna menyetujui prompt ATT (pengumpulan IDFA):
- SDK menambahkan IDFA ke event yang disimpan dalam cache.
- SDK memulai dan mengirim event yang disimpan dalam cache dengan IDFA (tanpa menunggu waktu tunggu berakhir).
- Jika pengguna menolak prompt ATT: SDK akan memulai dan mengirimkan event yang di-cache tanpa IDFA (tanpa menunggu batas waktu berakhir).
- Jika batas waktu berakhir dan status ATT tetap notDetermined: SDK akan memulai dan mengirimkan event yang di-cache tanpa IDFA.
Pertimbangan
- Memanggil
requestTrackingAuthorization
tanpa mengaturwaitForATTUserAuthorization
akan mengakibatkan peluncuran dan event dikirim tanpa IDFA untuk perangkat iOS 14+. - Jika pengguna memindahkan aplikasi ke latar belakang selama waktu tunggu:
- Timer dijeda hingga aplikasi kembali ke latar depan.
- Event disimpan dalam cache in-memory.
- Jika pengguna mematikan aplikasi, aplikasi akan dimatikan selama waktu tunggu:
- Timer direstart pada peluncuran aplikasi berikutnya.
- Event yang disimpan dalam cache akan hilang.
Menyesuaikan dialog persetujuan ATT
Anda dapat menyesuaikan prompt ATT. Pesan yang menyatakan dengan jelas tujuan permintaan dapat membantu meningkatkan tingkat keikutsertaan pengguna.
Pertimbangkan hal berikut saat membuat pesan Anda:
- Gunakan kata-kata terbaik untuk menjelaskan kepada pengguna Anda mengapa aplikasi meminta persetujuan pengguna.
- Memberi tahu pengguna tentang bagaimana data mereka akan digunakan. Pelajari lebih lanjut tentang privasi pengguna dan penggunaan data.
Setelah pesan Anda selesai, berikan teks dan instruksi penerapan kepada pengembang Anda.
Lihat Dev Hub untuk instruksi pengembang dalam menyesuaikan dialog izin ATT.
Lihat Dev Hub untuk instruksi pengembang dalam menyesuaikan dialog izin ATT.
Dukungan untuk atribusi SKAN
Catatan
Untuk sepenuhnya mendukung atribusi SKAN, upgrade ke iOS SDK V6.2.3+.
SKAN adalah kelas yang digunakan oleh iOS untuk memvalidasi penginstalan aplikasi yang diarahkan pemasang iklan. Proses validasi penginstalan aplikasi melibatkan aplikasi sumber dan aplikasi yang diiklankan.
Aplikasi sumber adalah aplikasi yang berpartisipasi dalam kampanye iklan dengan menampilkan iklan dari jaringan iklan. Mengonfigurasi aplikasi Anda untuk menampilkan iklan tidak berada dalam cakupan SDK AppsFlyer. Untuk mengonfigurasi, ikuti instruksi Apple.
Untuk aplikasi yang diiklankan (aplikasi dengan AppsFlyer SDK), solusi SKAN AppsFlyer menggunakan SKAN untuk menyediakan postback atribusi sementara AppsFlyer mengumpulkan, menerjemahkan, dan menggabungkan data dengan tetap menjaga privasi pengguna. Saat aplikasi diluncurkan untuk pertama kalinya, platform AppsFlyer menggunakan konfigurasi yang ditetapkan oleh pemasar untuk menginstruksikan SDK tentang cara menetapkan nilai konversi SKAN.
Untuk menggunakan solusi SKAN:
- Pemasar perlu mengonfigurasi pengukuran SKAN di AppsFlyer. Pengembang tidak perlu melakukan tugas apa pun.
- AppsFlyer SDK secara otomatis memanggil SKAN API yang diperlukan.
- Pastikan untuk menonaktifkan panggilan SKAN di SDK lain jika Anda mengandalkan AppsFlyer untuk atribusi SKAN.
- Tidak ada tindakan atau proses pendaftaran lain yang diperlukan oleh pengembang atau pemasar di App Store.
Untuk menonaktifkan atribusi SKAN, instruksikan pengembang Anda untuk menonaktifkannya di SDK.
Untuk menonaktifkan atribusi SKAN, gunakan disableSKAdNetwork
Untuk menonaktifkan atribusi SKAN, gunakan disableSKAdNetwork
Untuk menonaktifkan atribusi SKAN gunakan disableSKAd
Merekam in-app event
In-app event (IAE) menyediakan wawasan tentang aktivitas yang terjadi di aplikasi Anda. Merekam in-app event membantu Anda mengukur KPI seperti Return on Investment (ROI) dan Lifetime Value (LTV). Sebaiknya luangkan waktu untuk menentukan event yang ingin Anda rekam.
Setelah Anda menentukan in-app event yang ingin Anda ukur, kirim nama event dan parameter ke pengembang Anda, dan sertakan tautan ke petunjuk penerapan.
Untuk mempelajari lebih lanjut tentang in-app event, lihat panduan Rich in-app event kami .
Semua platform
Rekam pendapatan
Anda dapat mengirimkan pendapatan dengan in-app event mana pun. Pastikan Anda menggunakan parameter af_revenue untuk menyertakan pendapatan. Ini adalah satu-satunya parameter event yang dihitung oleh AppsFlyer sebagai pendapatan nyata di dashboard dan dalam laporan data lengkap. Pelajari lebih lanjut.
Untuk instruksi pengembang tentang menentukan event pendapatan, lihat di sini.
Untuk instruksi pengembang tentang menentukan event pendapatan, lihat di sini.
- Untuk instruksi pengembang tentang in-app event secara umum, lihat di sini.
- Untuk instruksi spesifik mengenai pendapatan di iOS dan Android, lihat tab Android dan iOS.
Validasi pembelian in-app
SDK AppsFlyer menyediakan verifikasi server untuk pembelian in-app. Memvalidasi pembelian in-app secara otomatis mengirimkan event pembelian in-app ke AppsFlyer. Mengirim event ini sendiri membuat salinan pelaporan event.
Industri vertikal
Lihat daftar in-app event yang direkomendasikan per vertikal, misalnya: perjalanan, gaming, atau eCommerce.
Tautan langsung (deep linking) dengan OneLink
OneLink adalah solusi AppsFlyer untuk atribusi multi-platform, pengarahan, dan deep linking.
Semua platform
Deteksi dan pengarahan perangkat
Untuk pengguna yang tidak menginstal aplikasi Anda, OneLink mendeteksi jenis perangkat dan mengarahkan mereka ke tujuan yang benar (misalnya, Google Play, Apple App Store, app store pihak ketiga, atau halaman web). Ini berdasarkan pada pengaturan templat OneLink Anda. Pelajari lebih lanjut
Penautan Langsung
Untuk pengguna yang menginstal aplikasi Anda, OneLink akan membuka aplikasi. Selain membuka aplikasi, Anda juga dapat menautkan langsung pengguna ke aktivitas atau halaman tertentu di dalam aplikasi. Ini mewajibkan pengembang Anda untuk menerapkan Tautan Langsung Terpadu (UDL).
Catatan:
- UDL mewajibkan SDK V6.1+.
- Pelanggan yang telah menggunakan OneLink untuk deep linking dapat menggunakan metode lama, bukan UDL.
Lihat panduan kami tentang mengatur Deep linking dan deferred deep linking.
Deferred deep linking (tautan langsung tertunda) :
Bagi pengguna yang tidak menginstal aplikasi Anda, OneLink mendeteksi jenis perangkat dan mengarahkan mereka ke tujuan yang benar: Google Play, Apple App Store, toko aplikasi pihak ketiga, atau laman web. Setelah pengguna meluncurkan aplikasi, Anda dapat menggunakan deferred deep linking (tautan langsung tertunda) untuk mengarahkan mereka ke aktivitas atau laman tertentu di dalam aplikasi.
Hal ini mengharuskan pengembang Anda untuk menerapkan penautan langsung tertunda dan diperluas.
Catatan:
- UDL mewajibkan SDK V6.1+.
- Pelanggan yang telah menggunakan OneLink untuk deferred deep linking (tautan langsung tertunda) dapat menggunakan metode lama, bukan UDL.
Lihat panduan kami tentang mengatur Deep linking dan deferred deep linking.
Mengakses data atribusi dan deep linking
Tabel berikut menjelaskan metode yang tersedia untuk mengambil data atribusi dan deep linking:
Metode | Siapa saja yang terlibat? | Kembalikan hasil | Metode pengambilan | Data atribusi | Data deep linking | Ketersediaan |
---|---|---|---|---|---|---|
Push API | • Pemasar • Pengembang back-end | Biasanya dalam beberapa menit | Backend | Y | N | Premium |
Pull API | • Pemasar • Pengembang back-end | Periodik (tidak dalam waktu nyata). Anda dapat menjadwalkan unduhan laporan data lengkap. | Backend | Y | Y | Premium untuk laporan data lengkap |
Data Locker | • Pemasar • Pengembang back-end | Laporan per jam tersedia dalam 1 - 3 jam | Penyimpanan cloud melalui salah satu opsi berikut: • Bucket milik AppsFlyer di AWS • Penyimpanan milik Anda (AWS atau GCS) | Y | Y | Premium |
Dapatkan data konversi (GCD) | • Pemasar • Pengembang seluler Lihat dokumentasi pengembang | Hingga 5 detik | SDK | Y | Y | Semua akun |
Deep Linking Terpadu (Unified Deep Linking/UDL) | • Pemasar • Pengembang seluler Lihat dokumentasi pengembang | Hingga 1 detik | SDK | N | Y | Semua akun |
Perhatikan hal berikut untuk pengguna iOS 14.5+ yang tidak memberikan persetujuan:
- Ketika menggunakan UDL untuk media berbayar dan milik sendiri, data deep linking tersedia.
- Ketika menggunakan GCD untuk media berbayar, datanya terbatas dan tidak termasuk rincian atribusi dan deep linking.
Tips
Kami menyarankan hal berikut:
- Gunakan Push API saat mengambil data atribusi dan mengirimkannya ke server Anda untuk diproses lebih lanjut. Metode ini menunggu data tersedia, dan karena itu sangat akurat dan mendekati waktu aktual. GCD mengembalikan data secara waktu aktual, tetapi mungkin tidak akurat saat keputusan atribusi akhir ditentukan setelah lebih dari 5 detik.
- Gunakan Pull API untuk secara periodik (misalnya, setiap hari) melengkapi data atribusi waktu aktual, dan untuk mengompensasi kesalahan komunikasi yang mungkin terjadi.
Menguji integrasi SDK Anda
Setelah integrasi SDK selesai, Anda dapat membuka dashboard AppsFlyer, dan dari halaman Uji Integrasi SDK, uji penginstalan organik dan non-organik, in-app event, dan deep linking (penargetan ulang). Ini memastikan bahwa penginstalan dan in-app event dicatat dan diatribusikan dengan benar.
Jika Anda memerlukan pengembang untuk menguji integrasi SDK, tambahkan pengembang sebagai pengguna di akun Anda, sehingga mereka dapat mengakses dashboard.
Untuk skenario dan instruksi pengujian, lihat pengujian integrasi SDK.
Catatan: Saat melakukan pengujian atribusi, daftarkan perangkat pengujian (Android atau iOS) untuk memastikan setiap penginstalan dicatat sebagai penginstalan baru. Perangkat uji yang terdaftar mencegah penginstalan agar tidak dicatat sebagai penginstalan ulang.