Integrasi SDK Unity untuk programmer

  • Pengiklan
  • Pengembang

Official_unity_logo.png

Versi SDK Unity Saat Ini: v4.20.1
Berdasarkan SDK Android AppsFlyer v4.10.0 dan SDK iOS AppsFlyer v4.10.0

1. Garis Besar

SDK Unity AppsFlyer menyediakan fungsi perekaman install mobile app dan event untuk proyek Unity Android dan iOS. Anda dapat merekam install, update, dan sesi, serta merekam event setelah install (termasuk pembelian in-app, level game, dll.) untuk mengevaluasi ROI dan level interaksi user.

Mobile app yang dikembangkan pada platform Unity dapat mengintegrasikan SDK AppsFlyer satu kali dan atribusi install untuk app Android dan iOS. Panduan ini menjelaskan cara mengintegrasikan SDK AppsFlyer ke kode Unity untuk aplikasi iOS dan Android Anda.

 Catatan

AppsFlyer mendukung integrasi dengan Unity versi 5 ke atas

 Penting!

Google Play Install Referrer API didukung mulai dari Plugin Unity versi 4.16.0. Jika Anda ingin menggunakan Referrer API baru, perbarui plugin ke versi 4.16.0 ke atas.

 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

2. Mulai

2.1 Mengunduh Plugin Unity AppsFlyer

Anda dapat menemukan plugin di Github di sini: https://github.com/AppsFlyerSDK/Unity

Di bawah ini adalah instruksi integrasi untuk penggunaan Plugin Unity AppsFlyer.

2.2 Menginstal Plugin

Di bawah ini adalah instruksi instalasi untuk plugin AppsFlyer:

  1. Impor AppsFlyerUnityPlugin.unitypackage ke proyek Unity Anda.
  2. Buka Assets >> Import Package >> Custom Package
  3. Pilih file AppsFlyerUnityPlugin.unitypackage.

2.3 Pengaturan Wajib untuk Android dan iOS

Pengaturan Android


Mengatur AF receiver dan hak akses ke AndroidManifest.xml:

<!-- receiver should be inside the <application> tag -->
<receiver android:name="com.appsflyer.MultipleInstallBroadcastReceiver" android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>
<!-- Mandatory permission: -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />


Mengatur Hak Akses Yang Diperlukan

File AndroidManifest.xml sudah termasuk 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" />


Mengatur BroadcastReceiver di 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 ini dalam tag aplikasi:

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

Pengaturan iOS


Framework dan Library Terkait


Setelah membuat proyek menggunakan Unity di xCode, Anda harus menambahkan Security.Framework ke Framework dan Library Terkait xCode jika sebelumnya framework belum ditambah.


IOS Apple Search Ads

tambahkan file berikut:

AdSupport.framework
AppsFlyer mengumpulkan IDFA hanya jika Anda menyertakan framework ini. Jika Anda tidak dapat menambahkan framework ini, Anda tidak dapat mengatribusi install atribut ke Facebook, Twitter, dan sebagian besar jaringan iklan lainnya.
iAd.framework

Menambahkan framework ini ke proyek app Anda sangat disarankan, karena framework ini wajib dipasang untuk mengatribusi Apple Search Ads.

3. Inisiasi SDK

Di metode Start / Init, atur kode pengembang AppsFlyer dan ID aplikasi unik yang digunakan oleh iTunes dan Google Play.  Harap diperhatikan bahwa Anda perlu mengatur ID aplikasi iOS hanya dengan angka tanpa awalan "id".

Tambahkan kode berikut:

Plugin Unity versi 4.15.1 dan di atasnya Plugin Unity versi 4.14.3 dan di bawahnya
void Start () {
/* Mandatory - set your AppsFlyer’s Developer key. */
AppsFlyer.setAppsFlyerKey ("YOUR_APPSFLYER_DEV_KEY");
/* For detailed logging */
/* AppsFlyer.setIsDebug (true); */
#if UNITY_IOS
  /* Mandatory - set your apple app ID
   NOTE: You should enter the number only and not the "ID" prefix */
  AppsFlyer.setAppID ("YOUR_APP_ID_HERE");
  AppsFlyer.trackAppLaunch ();
#elif UNITY_ANDROID
  /* Mandatory - set your Android package name */
  AppsFlyer.setAppID ("YOUR_ANDROID_PACKAGE_NAME_HERE");
  /* For getting the conversion data in Android, you need to add the "AppsFlyerTrackerCallbacks" listener.*/
  AppsFlyer.init ("YOUR_APPSFLYER_DEV_KEY","AppsFlyerTrackerCallbacks");
#endif
}

 Penting!

  • Untuk Android, AppsFlyer.init termasuk pemanggilan trackAppLaunch. Jadi, jangan memanggil trackAppLaunch di Android build milik Unity plugin.
  • Di iOS, respon data konversi dipicu di class AppsFlyerTrackerCallbacks.cs.

4. Merekam In-App Event

In-App Event memberikan informasi tentang apa yang dilakukan user dalam aplikasi Anda. Anda disarankan untuk meluangkan waktu dan menentukan event yang ingin Anda ukur agar Anda dapat mengukur ROI (Return on Investment) dan LTV (Lifetime Value).

Perekaman in-app event dilakukan dengan memanggil trackRichEvent 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 laporan data lengkap, API Pull dan API Push.


Contoh Rekaman Event:

System.Collections.Generic.Dictionary<string, string> purchaseEvent = new  
System.Collections.Generic.Dictionary<string, string> ();
purchaseEvent.Add ("af_currency", "USD");
purchaseEvent.Add ("af_revenue", "0.99");
purchaseEvent.Add ("af_quantity", "1");
AppsFlyer.trackRichEvent ("af_purchase", purchaseEvent);

 Catatan

AppsFlyer mendukung karakter non-Inggris dengan event in-app atau dengan API SDK lainnya mulai dari SDK Android versi 4.15.1

5. Melakukan Tautan Langsung

Untuk deep linking, ikuti instruksi sesuai dengan sistem operasi Anda.

AndroidiOS
Tambahkan kode berikut ke file manifest:

<activity android:name="com.appsflyer.GetDeepLinkingActivity" android:exported="true">
 <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="your_scheme" />
 </intent-filter>
</activity>

Untuk menerima data tautan langsung, Anda harus menerapkan fungsi callback onAppOpenAttribution (ada di class AppsFlyerTrackerCallbacks) yang dipanggil oleh SDK AppsFlyer. Penerapan ini menghasilkan Onelink/parameter link atribusi yang digunakan untuk memicu app terbuka. Kemudian, Anda dapat memparsing nilai dan menerapkan logika untuk memicu halaman app yang terkait.

public void onAppOpenAttribution(string validateResult) {
	print ("AppsFlyerTrackerCallbacks:: got onAppOpenAttribution = " + validateResult);
}

6. Merekam Pendapatan

Gunakan parameter event AFInAppEvents.REVENUE untuk menghitung pendapatan sebagai bagian dari event dalam-aplikasi. Anda dapat mengisinya dengan nilai numerik, positif maupun negatif.

 Catatan

AFInAppEvents.REVENUE(sama dengan penggunaan af_revenue) adalah SATU-SATUNYA parameter event yang dihitung oleh AppsFlyer sebagai pendapatan pada laporan data dan dashboard AppsFlyer. Untuk informasi lebih lanjut klik di sini.

 Contoh

Pendapatan dari Event Dalam-Aplikasi
AppsFlyer.trackRichEvent(AFInAppEvents.LEVEL_ACHIEVED, new Dictionary<string, string>(){
	{AFInAppEvents.CONTENT_ID, "1234567"},
	{AFInAppEvents.CONTENT_TYPE, "category_a"},
	{AFInAppEvents.REVENUE, "1.99"},
	{AFInAppEvents.CURRENCY, "USD"}
});

 Penting!

JANGAN memformat nilai pendapatan dengan cara apa pun. Nilai pendapatan tidak boleh berisi koma, simbol mata uang, atau teks. Misalnya, nilai 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.

AppsFlyer.trackRichEvent(AFInAppEvents.PURCHASE, new Dictionary<string, string>(){
	{AFInAppEvents.CONTENT_ID, "1234567"},
	{AFInAppEvents.CONTENT_TYPE, "category_a"},
	{AFInAppEvents.REVENUE, "-1.99"},
	{AFInAppEvents.CURRENCY, "USD"}
});

 Catatan

Pada kode di atas, perhatikan beberapa hal berikut:

  1. Nilai pendapatan didahului dengan tanda minus
  2. Nama event memiliki nilai 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 konversi pengguna secara aktual untuk setiap instalasi baru, langsung dari SDK. Hal ini memungkinkan Anda untuk menyesuaikan halaman utama yang dilihat oleh pengguna saat pertama kali aplikasi dibuka setelah instalasi.

Untuk memuat data konversi AppsFlyer dari server:

  1. Tambahkan GameObject kosong
  2. Lampirkan ke file AppsFlyerTrackerCallbacks.cs yang terdapat di dalam proyek (Anda harus menamai gameobject sebagaiAppsFlyerTrackerCallbacks).
Plugin Android Unity > 4.15.1 Plugin Android Unity < 4.14.3 iOS
/*Anda perlu menambahkan listener berikut ini untuk memperoleh data konversi di Android. ke metode init() */
AppsFlyer.init ("YOUR_DEV_KEY","AppsFlyerTrackerCallbacks");


Di Android, Anda dapat memindahkan metode dari AppsFlyerTrackerCallbacks.cs ke class lainnya dan memanggil class tersebut di listener Anda.

Anda harus menggunakan metode yang sama persis dengan namespace yang muncul di AppsFlyerTrackerCallbacks.

8. Pengidentifikasi Pengguna

Memperoleh AppsFlyer Device ID

ID perangkat unik AppsFlyer dibuat untuk setiap instalasi aplikasi baru. Gunakan API berikut untuk mendapatkan ID Unik AppsFlyer:

public String getAppsFlyerId();


Contoh Penggunaan:

string AppsFlyerUID = AppsFlyer.getAppsFlyerId();

Mengatur ID Pengguna Pelanggan

Mengatur ID Pengguna seperti yang digunakan oleh aplikasi. 

Untuk mengatur ID Pengguna, panggil metode berikut:

AppsFlyer.setCustomerUserID("IdApaPun");

 Catatan

customerUserID HARUS diatur sebelum trackAppLaunch/init. Sebaiknya atur ID User Kustomer sesegera mungkin karena ID hanya terkait dengan event yang dilaporkan setelah ID diatur. ID Pengguna Pelanggan dapat juga digunakan untuk melengkapi integrasi dengan platform Analisis seperti Mixpanel dan Swrve.

 Penting!

Untuk iOS - Sebelum memanggil trackAppLaunch, pastikan untuk mengatur ID user kustomer setiap kali app diluncurkan

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

Google Advertising ID

Dari SDK Versi 4.15.1, AppsFlyer mengumpulkan google_advertising_id secara otomatis . Syarat untuk mengumpulkan Google Advertising ID hanya relevan untuk SDK versi di bawah 4.15.1.

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 Unity versi 4.16.4 ke bawah membutuhkan GPS). 

Untuk mengirim ID ini secara eksplisit ke AppsFlyer, pengembang dapat menggunakan API berikut:

AppsFlyer.setAndroidIdData(string)
AppsFlyer.setImeiData(string)

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:

AppsFlyer.setCollectAndroidID(bool) 
AppsFlyer.setCollectIMEI(bool)

 Peringatan

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

IDFA dan IDFV

AppsFlyer secara otomatis mengumpulkan IDFA (ID Untuk Pengiklan) dan IDFV (ID Untuk Vendor) jika AdSupport.framework dimuat di aplikasi.

9. Fitur Pilihan

Mengukur Uninstall

Untuk pengukuran Uninstall, ikuti instruksi sesuai dengan sistem operasi Anda.

Android - FirebaseAndroid - GCMiOS
1.  Unduh SDK Unity Firebase dari: https://firebase.google.com/docs/unity/setup
2.  Impor FirebaseMessaging.unitypackage ke proyek.
3.  Impor google-services.json ke proyek (diperoleh dari konsol Firebase)

 Catatan

Penerima Manifest harus ditambahkan secara otomatis oleh SDK Unity Firebase.


4.  Di class Unity yang menangani kode AppsFlyer, tambahkan:
menggunakan Firebase.Messaging;
menggunakan Firebase.Unity;

5.  Tambahkan ke metode Start():
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;

6.  Tambahkan metode berikut:
public void OnTokenReceived
  (object sender, Firebase.Messaging.TokenReceivedEventArgs token) { 
    AppsFlyer.updateServerUninstallToken (token.Token);
}

 

 Peringatan

Pengguna yang menerapkan SDK Unity Firebase tidak boleh menambahkan metode call to enableUninstallTracking(“SenderID”) karena SDK Firebase akan memperoleh ID pengirim dari file google-services.json yang telah ditambahkan sebelumnya. Penambahan metode ini akan menyebabkan peringatan debug dari Android.

Rekaman Notifikasi Push

AppsFlyer memungkinkan Anda untuk melacak Push Notification sebagai bagian dari kampanye penargetan ulang.

handlePushNotification(Dictionary<string, string> payload)

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

// with deep-linking
{
  "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 yang dimiliki user saat ini. Melakukan promosi silang app dapat menjadi faktor pertumbuhan utama dalam mendorong install tambahan untuk app Anda.

Untuk detail lebih lanjut, lihat artikel Atribusi Promosi Silang, di sini.

Atribusi Undangan Pengguna

AppsFlyer memungkinkan Anda untuk mengatribusikan dan merekam install yang berasal dari undangan user didalam app Anda. Mengizinkan user yang ada untuk mengundang teman dan kontak mereka sebagai user baru bagi app Anda akan menjadi faktor pertumbuhan utama untuk app Anda.

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

Mengatur Kode Mata Uang

Selain kode mata uang yang dapat digunakan sebagai bagian dari setiap event dalam-aplikasi yang dikirim ke AppsFlyer, Anda dapat mengatur kode mata uang global menggunakan API berikut. Kode mata uang global digunakan saat af_currency

AFInAppEvents.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 mengatur kode mata uang:

public void setCurrencyCode(String currencyCode);

Contoh Penggunaan:

setCurrencyCode(string currencyCode)

Validasi Pembelian Dalam-Aplikasi

Untuk Validasi Penerimaan Pembelian Dalam-Aplikasi, ikuti instruksi sesuai dengan sistem operasi Anda.

Panggilan Android Memanggil Pendengar (Hanya Android) iOS
//Untuk memperoleh callback
//AppsFlyer.createValidateInAppListener ("AppsFlyerTrackerCallbacks", 
"onInAppBillingSuccess", "onInAppBillingFailure"); AppsFlyer.validateReceipt(string publicKey, string purchaseData,
string signature, string price, string currency, Dictionary additionalParametes);

 Catatan

  • Menghubungi validateReceipt secara otomatis menghasilkan in-app event af_purchase, sehingga Anda tidak perlu mengirimkan event ini sendiri.
  • Validasi respon pembelian dipicu dalam kelas AppsFlyerTrackerCallbacks.cs.

Menganonimkan Data Pengguna

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

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

public void setDeviceTrackingDisabled(boolean isDisabled);

Contoh Penggunaan:

AppsFlyer.setDeviceTrackingDisabled(true);
Atribusi dan perekaman event dapat dijalankan ulang dengan memanggil deviceTrackingDisabled lagi dan mengaturnya ke false.

 Peringatan

Pengecualian pengguna berdampak KRITIS 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 nilai kustom sebagai waktu minimum yang diperlukan antar-sesi:
setMinTimeBetweenSessions(int seconds)


Contoh Penggunaan:

AppsFlyer.setMinTimeBetweenSessions(10);

Perlu diperhatikan bahwa mengatur nilai tinggi ke waktu kustom antar-peluncuran dapat berdampak buruk pada API yang bergantung pada data sesi, seperti deep linking.

Sesi Latar Belakang untuk Aplikasi Utilitas

Saat ini tidak tersedia untuk Unity.

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 sebelum tag </application>.

Untuk rincian 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.

AppsFlyer.stopTracking(true);

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

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

 Peringatan

Gunakan API ini hanya jika Anda ingin sepenuhnya mengabaikan user ini dari setiap dan semua atribusi serta perekaman event. Penggunaan API ini berdampak KRITIS pada atribusi, pengumpulan data, dan mekanisme deep linking Anda.

Mengatur Data Kustom Tambahan

parameter 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 Unity:

Dictionary<string, string> CustomDataMap = new Dictionary<string, string>();
CustomDataMap.Add("custom_param_1", "value_of_param_1");
AppsFlyer.setAdditionalData(CustomDataMap);

Atribusi untuk App Pra-Install

Hanya Android

Anda dapat secara terprogram mengatur media source pra-install dari Unity, menggunakan API berikut:

setPreinstallAttribution(string MediaSource, string Campaign, string Site_Id);

Untuk detail tentang implementasi native, klik di sini.

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.

AppsFlyer.setResolveDeepLinkURLs("example.com", "click.example.com");

 Penting!

Saat menggunakan SDK Unity AppsFlyer, hindari

PlayerPrefs.DeleteAll()

10. Menguji Integrasi Anda

Untuk instruksi pengujian integrasi Anda yang sesuai dengan sistem operasi yang Anda pakai, klik Pengujian Android atau Pengujian iOS.

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

11. Masalah Yang Diketahui

ProGuard

Jika Anda menggunakan ProGuard untuk Android dan Anda menemukan peringatan tentang class AFKeystoreWrapperkami, tambahkan kode berikut ke file aturan ProGuard Anda:

-keep class com.appsflyer.** { *; }

IL2CPP

Untuk mengecualikan SDK kami dari Managed bytecode stripping dengan IL2CPP, tambahkan kode berikut ke link.xml:

<linker>
  <assembly fullname="UnityEngine">
    <type fullname="UnityEngine.AndroidJavaRunnableProxy" preserve="all" />
  </assembly>
</linker>

IMPL_APP_CONTROLLER_SUBCLASS

Jika Anda menggunakan plugin tambahan yang akan meng-override AppControllerClassName, ubahlahAppsFlyerAppController seperti yang ditunjukkan di bawah ini (objective-c):

+(void)load
{
  [AppsFlyerAppController plugin];
}

// Singleton accessor.
+ (AppsFlyerAppController *)plugin
{
  static AppsFlyerAppController *sharedInstance = nil;
  static dispatch_once_t onceToken;
  
  dispatch_once(&onceToken, ^{
    
    sharedInstance = [[AppsFlyerAppController alloc] init];
  });
  
  return sharedInstance;
}

//IMPL_APP_CONTROLLER_SUBCLASS(AppsFlyerAppController)

12. Proyek Sampel Unity

Untuk melihat proyek contoh Unity, klik di sini.

Apakah artikel ini membantu?
4 dari 12 menganggap ini berguna

Komentar

0 komentar

Harap login untuk memberikan komentar.

Artikel dalam bagian ini