Panduan integrasi plugin V6 unity—Integrasi SDK dasar

Sekilas: Integrasikan dan instal SDK AppsFlyer ke aplikasi Android atau iOS yang dikembangkan dengan Unity. Setelah tugas integrasi dasar selesai, aplikasi Anda siap untuk atribusi penginstalan dan pengukuran in-app event. 

 Bacaan terkait

Untuk gambaran lengkap tentang pengintegrasian plugin Unity dengan aplikasi Anda, pastikan Anda membaca artikel ini:

Tambahkan plugin ke aplikasi Anda

 Penting!

AppsFlyer Unity SDK tidak mendukung Unity Internal Build System.

Unduh plugin AppsFlyer Unity

Unduh plugin Unity terbaru dari GitHub.

Instal plugin tersebut

Gunakan salah satu metode penginstalan berikut.

Menggunakan EDM4UTanpa EDM4U

External Dependency Manager (Manajer Ketergantungan Eksternal) untuk Unity  (EDM4U) didistribusikan dengan plugin AppsFlyer Unity secara default. Hal ini memudahkan proses integrasi dengan menyelesaikan konflik ketergantungan antara plugin Anda dan plugin lain dalam proyek Anda.

Untuk menginstal plugin:

Tambahkan appsflyer-unity-plugin.v*.unitypackage untuk secara otomatis mengimpor semua aset yang diperlukan untuk plugin AppsFlyer dan EDM4U.

Siapkan Android

Untuk mengatur izin Android yang diperlukan:

Atur hak akses berikut di AndroidManifest.xml :

<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" />

Aplikasi yang menargetkan API level 31 (Android 12) harus menambahkan izin berikut ke AndroidManifest.xml untuk mengakses Pengenal Iklan Android:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

Inisialisasi plugin

Bagian ini menjelaskan cara menerapkan dan menginisialisasi SDK.

Ambil kode pengembang

admin.png

  • Kunci pengembang itu unik dan mengidentifikasi akun tersebut. Dalam beberapa kasus, ada kunci level aplikasi. 
  • Kunci pengembang (Dev key) adalah wajib.

Untuk mendapatkan kunci pengembang :

  1. Di AppsFlyer, buka Konfigurasi> Pengaturan Aplikasi .
  2. Dapatkan kunci pengembang. 

Inisialisasi plugin

Menggunakan prefab AppsFlyerIntegrasikan secara manual

Untuk menginisialisasi plugin menggunakan prefab :

  1. Buka Aset > AppsFlyer.
  2. Seret AppsFlyerObject.prefab ke tempat Anda.

    prefab_en-us.png
  3. Atur bidang berikut:

     Pengaturan Catatan
    Kunci pengembang Rekatkan kunci pengembang yang Anda ambil sebelumnya.
    ID Aplikasi

    iOS: Masukkan ID aplikasi iOS (tanpa awalan id).

    Android: Biarkan kosong.

    Dapatkan data konversi Jika aplikasi menerapkan deep linking AppsFlyer , atur ke "True". Defaultnya adalah 'False', yang berarti deep linking secara default TIDAK diterapkan.
    Adalah debug

    Untuk melihat log debug selama pengembangan: atur ke true.

    Catatan: Pastikan untuk menonaktifkan (diatur ke false) sebelum merilis aplikasi ke produksi.

  4. Perbarui kode di Aset > AppsFlyer > AppsFlyerObjectScript.cs dengan yang tersedia lainnya API .

Rekam in-app event

Rekam in-app event untuk mengukur KPI seperti pendapatan, ROI, dan LTV (Lifetime Value/Nilai Seumur Hidup).

In-app event harus diterapkan untuk merekam peristiwa pengguna. Event dapat dikirim dengan beberapa cara:

  • [Praktik terbaik] Mengirim event melalui aplikasi seperti yang dijelaskan dalam artikel ini.
  • Untuk metode tambahan, lihat panduan tinjauan in-app event.

Untuk aplikasi yang termasuk dalam vertikal, misalnya, perjalanan, game, eCommerce, lihat daftar in-app event yang direkomendasikan per vertikal .

Nama dan parameter in-app event

Untuk mengirim event:

[Praktik terbaik] Gunakan nama dan parameter peristiwa karena alasan berikut:

  • Penamaan standar: AppsFlyer dapat secara otomatis memetakan acara ke SRN seperti Facebook, Google, dan Twitter.
  • Kompatibilitas mundur (backward compatibility): Tidak ada masalah yang muncul jika AppsFlyer mengubah nama atau parameter event. Implementasinya kompatibel mundur ke belakang.

Rekam pendapatan

Laporkan pendapatan dengan menambahkan   parameter af_revenue pada in-app event.

  • Isi af_revenue  dengan nilai numerik. Nilai negatif diperbolehkan. 
  • Parameter af_revenue mengisi penghitung pendapatan AppsFlyer dan bidang data lengkap. Melakukan hal tersebut memungkinkan pemasar untuk melihat pendapatan di dashboard.
  • Pendapatan dapat dikirim menggunakan parameter lain, tetapi platform AppsFlyer tidak akan mengenalinya sebagai pendapatan. Klik di sini untuk rincian lebih lanjut. 
  • Nilai pendapatan tidak boleh  berisi tanda pemisah berupa tanda koma, simbol mata uang, atau teks.
    Contoh event pendapatan: 1234,56

Praktik terbaik: Pelajari tentang pengaturan mata uang, tampilan, dan konversi mata uang.

 Persyaratan kode mata uang saat mengirim event pendapatan

  • Mata uang default: USD
  • Gunakan kode ISO 4217 berkarakter 3 (contoh berikut).
  • Atur kode mata uang dengan memanggil metode API:
    AppsFlyer.setCurrencyCode("ZZZ")

Contoh: Event pembelian dalam aplikasi dengan pendapatan

Event pembelian ini seharga 200,12 Euro. Agar pendapatan tercermin di dashboard, gunakan yang berikut ini. 

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "EUR");
purchaseEvent.Add(AFInAppEvents.REVENUE, "200.12");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "1");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a",);
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);

Catat pendapatan negatif

Rekam pendapatan negatif menggunakan tanda minus.

  • Nilai pendapatan digunakan oleh pengiklan dan agensi.
  • Nama event memiliki nilai unik, "cancel_purchase". Hal ini memungkinkan Anda mengidentifikasi peristiwa pendapatan negatif dalam laporan data mentah dan di dasbor.

Contoh: Pengguna aplikasi menerima pengembalian uang atau membatalkan langganan.

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "USD");
purchaseEvent.Add(AFInAppEvents.REVENUE, "-200");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "1");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a");
AppsFlyer.sendEvent ("cancel_purchase", purchaseEvent);

Validasi Pembelian Dalam-Aplikasi

Plugin ini menyediakan verifikasi server untuk pembelian in-app.

Untuk memvalidasi pembelian, instruksi khusus sistem operasi:

AndroidiOS
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.validateAndSendInAppPurchase(
"publicKey",
"signature",
"purchaseData",
"price",
"currency",
null,
this);
#endif

Parameter metode

Android iOS
Parameter Deskripsi
String Kode publik Kode publik dari Google Developer Console
String Tanda tangan

Tanda tangan transaksi; d ikembalikan oleh Google API saat pembelian selesai

String Data pembelian

Produk dibeli dalam format JSON; d ikembalikan oleh Google API saat pembelian selesai

String Pendapatan Pendapatan event In-app untuk dilaporkan pada AppsFlyer
String Mata uang Mata uang event in-app untuk dilaporkan ke AppsFlyer
Dictionary <String, String> additionalParameters

Parameter acara in-app tambahan yang munculdi bidang event_value dalam data mentah event in-app

 Catatan

Panggil validateReceipt untuk secara otomatis menghasilkan in-app event af_purchase.

Jangan mengirim event pembelian setelah memvalidasi pembelian. Melakukan hal tersebut akan menghasilkan pelaporan event duplikat.

Pertimbangan in-app event

  • Nama event: maksimum 45 karakter
  • Nilai event: tidak boleh melebihi 1000 karakter - jika lebih panjang kami dapat memangkasnya
  • Mendukung karakter non-bahasa Inggris untuk in-app event (dan API lainnya)
  • Harga dan pendapatan:
    • Gunakan hanya angka dan desimal seperti 5 atau 5,2
    • Diperbolehkan hingga 5 angka setelah desimal. Misalnya, 5,12345

Contoh perekaman in-app event

Rekam in-app event dengan memanggil trackRichEvent dan termasuk nama event dan parameter nilai.
Lihat In-App Event untuk rincian selengkapnya.

Contoh: Cara untuk mencatat sebuah event pembelian dalam aplikasi

Untuk daftar komprehensif cuplikan kode per vertikal yang siap pakai, lihat panduan kami terkait rich in-app event per bisnis vertikal.

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new 
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add(AFInAppEvents.CURRENCY, "USD");
purchaseEvent.Add(AFInAppEvents.REVENUE, "200");
purchaseEvent.Add(AFInAppEvents.QUANTITY, "2");
purchaseEvent.Add(AFInAppEvents.CONTENT_TYPE, "category_a");
purchaseEvent.Add(AFInAppEvents.CONTENT_ID, "092");
AppsFlyer.sendEvent (AFInAppEvents.PURCHASE, purchaseEvent);

Rekam in-app event secara offline

Terkadang pengguna membuat in-app event, saat mereka tidak memiliki koneksi internet. AppsFlyer menyimpan eventdan laporan dalam cache jika memungkinkan. 

  • Plugin mengirimkan event ke server AppsFlyer dan menunggu respons.
  • Jika SDK tidak mendapatkan respons 200, event disimpan dalam cache.
  • Setelah menerima 200 respon berikutnya, event yang di-cache dikirim kembali ke server.
  • Jika cache menampung banyak event, mereka dikirim ke server satu demi satu.

 Catatan

Cache dapat menyimpan hingga 40 event.

  • Hanya 40 event offline pertama yang disimpan.
  • Semua event offline berikut, hingga 200 respon berikutnya, dibuang.
  • Dalam laporan data mentah,
    • Waktu event = Terkadang pengguna menghasilkan acara dalam aplikasi, sementara mereka tidak memiliki koneksi internet.
    • Ini bukan saat dimana terjadi event.

Deep-link dengan OneLink

OneLink AppFlyer adalah solusi untuk atribusi multi-platform: pengalihan dan deep linking.

Deteksi dan pengarahan perangkat

OneLink:

  • Mendeteksi jenis perangkat (Android dan iOS, desktop, dll.) Saat pengguna mengklik, lalu
  • Mengalihkan pengguna ke tujuan yang benar: Google Play, toko aplikasi iOS, pasar di luar toko, atau halaman web.

Untuk menerapkan  tautan atribusi multi-platform dan meninjau dasar-dasar deep linking, lihat panduan pengarahan OneLink .

Penautan Langsung

Gunakan deep linking untuk mengarahkan pengguna yang ada ke aktivitas spesifik dan konten khusus. 

Pemilik aplikasi dan developer harus bekerja sama untuk menyiapkan deep linking dengan OneLink:

  • Pemilik aplikasi harus  mengakses dasbor AppsFlyer
  • Developer harus mengakses aplikasi

Lihat mengatur deep linking dengan OneLink.

Deferred deep linking (tautan langsung tertunda) :

Deep linking tertunda memungkinkan Anda tertaut dalam dengan pengguna baru untuk mengarahkan mereka ke kegiatan tertentu dan konten khusus dengan peluncuran pertama dari instalasi aplikasi. 

Deep linking standar juga mengarahkan pengguna ke aktivitas tertentu dan konten khusus, tetapi sebuah aplikasi harus sudah diinstal pada perangkat pengguna.

Untuk mengatur deep linking tertunda dengan OneLink:

  • Developer perlu akses ke platform the AppsFlyer.
  • Pengaturan platform AppsFlyer untuk deep linking tertunda dan standar adalah sama.
  • Harus mengimplementasikan logika tambahan dalam aplikasi untuk  pengguna tautan langsung (deep link) dan menyajikan konten yang disesuaikan setelah mereka menginstalasi dan meluncurkan aplikasi.

Periksa deep linking tertunda  untuk informasi lebih lanjut.

Dapatkan data deep link

Plugin menyediakan data konversi atau interaksi setelah penginstalan atau deep-linking event. Gunakan data ini untuk menyesuaikan konten dan/atau perilaku terprogram aplikasi.

Untuk menerima data deep-link:

  • Terapkan callback onAppOpenAttribution (ditemukan di kelas IAppsFlyerConversionData ); ini disebut dengan plugin AppsFlyer.
  • Tautan parameter OneLink/atribusi yang dikembalikan memicu sebuah aplikasi untuk membuka.
  • Parsing nilai dan aplikasi logika untuk memicu halaman aplikasi yang terkait.
public void onAppOpenAttribution(string attributionData)
{
AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
// add direct deeplink logic here
}

Periksak data deep linking untuk informasi lebih lanjut.

Dapatkan data konversi

Akses ke data atribusi pengguna waktu aktual tersedia untuk setiap penginstalan. Gunakan ini untuk meningkatkan interaksi pengguna dengan menyediakan:

  • Konten yang dipersonalisasi
  • Mengirim pengguna ke aktivitas tertentu dalam suatu aplikasi. Lihat deep linking tertunda dalam artikel ini.

Dapatkan data konversi AppsFlyer

Untuk mendapat data konversi AppsFlyer:

  1. Terapkan IAppsFlyerConversionDatabase .
  2. Panggil metode initSDK dengan ini sebagai parameter terakhir.
  3. Gunakan metode onConversionDataSuccess untuk mengarahkan pengguna. 

Lihat referensi API untuk onConversionDataSuccess.

menggunakan SDK AppsFlyer;

kelas publik AppsFlyerObjectScript : MonoBehaviour , IAppsFlyerConversionData
{
    void Start()
    {
        /* AppsFlyer.setDebugLog(true); */
        AppsFlyer.initSDK("devkey", "appID", this);
        AppsFlyer.startSDK();
    }

    public void onConversionDataSuccess(string conversionData)
    {
        AppsFlyer.AFLog("onConversionDataSuccess", conversionData);
        Dictionary<string, object> conversionDataDictionary = AppsFlyer.CallbackStringToDictionary(conversionData);
        // add deferred deeplink logic here
    }

    public void onConversionDataFail(string error)
    {
        AppsFlyer.AFLog("onConversionDataFail", error);
    }

    public void onAppOpenAttribution(string attributionData)
    {
        AppsFlyer.AFLog("onAppOpenAttribution", attributionData);
        Dictionary<string, object> attributionDataDictionary = AppsFlyer.CallbackStringToDictionary(attributionData);
        // add direct deeplink logic here
    }

    public void onAppOpenAttributionFailure(string error)
    {
        AppsFlyer.AFLog("onAppOpenAttributionFailure", error);
    }
}

Uji penginstalan

Izinkan perangkat uji

Izinkan  perangkat uji.

Simulasikan penginstalan

Simulasikan penginstalan organik dan non-organik.

Simulasikan penginstalan organik

Penginstalan organik adalah penginstalan tanpa atribusi; biasanya merupakan hasil penginstalan yang dibuat langsung melalui app store. Untuk mensimulasikan penginstalan organik, ikuti petunjuk ini .

Simulasikan penginstalan non-organik

Penginstalan non-organik adalah penginstalan yang diatribusikan, yang biasanya hasil dari interaksi iklan. Untuk mensimulasikan penginstalan non-organik, ikuti petunjuk ini.