Integrasi SDK AppsFlyer - Unity

Official_unity_logo.png

Current Unity SDK Version:  v4.16.2
Compatible with Android SDK v4.8.6 and iOS SDK v4.8.2

1. Garis Besar

SDK AppsFlyer menyediakan instalasi aplikasi mobile dan fungsi pelacakan event untuk Android, iOS, Windows Phone dan banyak platform pengembangan mobile lainnya.

Anda dapat melacak instalasi, pembaruan, sesi, serta melacak event dalam aplikasi (termasuk pembelian dalam aplikasi, tingkat permainan, dll.) untuk mengevaluasi tingkat pulangan investasi (ROI) dan tingkat interaksi pengguna.

Aplikasi seluler yang dikembangkan di platform Unity, dapat menikmati integrasi SDK AppsFlyer sekali dan melacak aplikasi yang dihasilkan dari Android dan iOS. Panduan ini menjelaskan cara mengintegrasi SDK AppsFlyer ke kode Unity untuk aplikasi iOS dan Android Anda.

 Catatan

AppsFlyer mendukung integrasi dengan Unity OS versi 5 dan di atasnya

 Penting!

Google Play Install Referrer API is supported starting from Unity Plugin v 4.16.0. If you want to use the new Referrer API, update the plugin to version 4.16.0 or above.

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


Setting the AF receiver and permissions to the 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" />


Setting the Required Permissions

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


Setting the BroadcastReceiver in 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


Linked Frameworks and Libraries


After building the project in Unity for xCode, you must add Security.Framework to xCode's Linked Frameworks and Libraries if the framework was not added previously.


iOS Apple Search Ads

tambahkan file berikut:

AdSupport.framework
AppsFlyer mengumpulkan IDFA hanya jika Anda menyertakan framework ini. Jika Anda tidak dapat menambah framework ini, Anda tidak dapat melacak Facebook, Twitter, dan sebagian besar jaringan iklan lainnya.
iAd.framework

Penambahan framework ini ke aplikasi Anda sangatlah disarankan, karena framework ini wajib dipasang untuk melacak Iklan Pencarian Apple.

3. Inisialisasi SDK

In your Start / Init methods you set the AppsFlyer dev key and the unique app IDs used by iTunes and Google Play. Note that you need to set the iOS app ID here with digits only, without the "id" prefix.

Add the following code:

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_HERE");
/* 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_DEV_KEY","AppsFlyerTrackerCallbacks");
#endif
}

 Penting!

  • For Android, AppsFlyer.init includes calling trackAppLaunch. Therefore, do not call trackAppLaunch in the Android build of the Unity plugin.
  • In iOS, the conversion data response is triggered in the AppsFlyerTrackerCallbacks.cs class.

4. Mengukur Event Dalam-Aplikasi

Event Dalam-Aplikasi memberikan informasi tentang apa yang dilakukan user dalam aplikasi Anda. Sebaiknya luangkan waktu dan tentukan event yang ingin Anda ukur agar Anda dapat melacak ROI (Pulangan Investasi) dan LTV (Lifetime Value).

Melacak event dalam-aplikasi dilakukan dengan cara memanggil trackEvent bersama nama event dan parameter nilai. Lihat dokumentasi Event Dalam-Aplikasi  untuk informasi 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.


Tracking Event Example:

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 supports non-English characters with in-app events, or with any other SDK API, starting from Unity SDK version 4.15.1.

5. Melacak Deep Linking

Untuk Deep Linking, ikuti instruksi sesuai dengan sistem operasi Anda.

Android iOS
Add the following to your manifest file:

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

6. Melacak Pendapatan

Gunakan parameter event AFInAppEvents.REVENUE untuk menghitung pendapatan sebagai bagian dari event dalam-aplikasi. Anda dapat mengisinya dengan nilai numerik, positif atau 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"}
        });

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
/*For getting the conversion data in Android, you need to add this listener. to the init() method*/
AppsFlyer.init ("YOUR_DEV_KEY","AppsFlyerTrackerCallbacks");


In Android, you can move the methods from AppsFlyerTrackerCallbacks.cs to another class, and call that class in your listener.

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();


Usage Example:

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 Pengguna Pelanggan sesegera mungkin karena ID hanya terkait dengan event yang dilaporkan setelah ID dibuat. ID Pengguna Pelanggan dapat juga digunakan untuk melengkapi integrasi dengan platform Analisis seperti Mixpanel dan Swrve.

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

Mengatur Email Pengguna

Saat ini tidak tersedia untuk Unity.

Google Advertising ID

AppsFlyer secara otomatis mengumpulkan google_advertising_id dari SDK Versi 4.8.0. Persyaratan untuk mengumpulkan ID Iklan Google hanya berlaku untuk SDK versi 4.7.x ke bawah.

IMEI dan Android ID

Secara default, IMEI dan Android ID tidak dikumpulkan oleh SDK jika versi OS lebih tinggi dari KitKat (4.4) dan aplikasi memuat Google Play Services.  

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

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


If the app does NOT contain Google Play Services the IMEI and Android ID are collected by the SDK.

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

Melacak Pelepasan Instalasi

Untuk Pelepasan Instalasi, ikuti instruksi sesuai dengan sistem operasi Anda.

Android - Firebase Android - GCM iOS
1.  Download the Unity Firebase SDK from: https://firebase.google.com/docs/unity/setup
2.  Import FirebaseMessaging.unitypackage into the project.
3.  Import google-services.json into the project (obtained in the Firebase console)

 Catatan

Penerima Manifest harus ditambahkan secara otomatis oleh SDK Unity Firebase.


4.  In the Unity class handling the AppsFlyer code, add the following:
menggunakan Firebase.Messaging;
menggunakan Firebase.Unity;

5.  Add to the Start() method:
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;

6.  Add the following method:
public void OnTokenReceived
(object sender, Firebase.Messaging.TokenReceivedEventArgs token) { AppsFlyer.updateServerUninstallToken (token.Token); }

 

 Peringatan

Users who implement the Unity Firebase SDK should not add the following method call to enableUninstallTracking(“SenderID”) as the Firebase SDK will obtain the sender ID from the google-services.json file we have added earlier. Adding this method might cause a debug warning from Android.

Melacak Push Notification 

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.

Pelacakan Promosi Silang 

Saat ini tidak tersedia untuk Unity.

Pelacakan Undangan Pengguna

Saat ini tidak tersedia untuk Unity.

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
//To get the callbacks
//AppsFlyer.createValidateInAppListener ("AppsFlyerTrackerCallbacks", 
"onInAppBillingSuccess", "onInAppBillingFailure"); AppsFlyer.validateReceipt(string publicKey, string purchaseData,
string signature, string price, string currency, Dictionary additionalParametes);

Validasi respon pembelian dipicu dalam kelas AppsFlyerTrackerCallbacks.cs

Opt Out 

AppsFlyer provides you a method to opt-out specific users from AppsFlyer analytics. This method complies with the latest privacy requirements and complies with Facebook data and privacy policies. Default is false, meaning tracking is enabled by default.

Use this API during the SDK Initialization to explicitly opt-out:

public void setDeviceTrackingDisabled(boolean isDisabled);

Contoh Penggunaan:

AppsFlyer.setDeviceTrackingDisabled(true);
Tracking can be restarted by calling deviceTrackingDisabled again set to false.

 Peringatan

Opting out users SEVERELY hurts your attribution information.
Use this option ONLY for regions which legally prevent you from collecting your users' information.

Waktu Antar Sesi Kustom

Saat ini tidak tersedia untuk Unity.

Sesi Latar Belakang untuk Aplikasi Utilitas

Saat ini tidak tersedia untuk Unity.

Melacak Aplikasi Diluar Google Play/App Store 

 Catatan

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

Untuk melacak instalasi selain Google Play, atur saluran/bursa aplikasi pada file AndroidManifest.xml aplikasi 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 informasi lebih lanjut tentang cara melacak instalasi aplikasi selain dari bursa aplikasi resmi, baca di sini.

Setting Additional Data

The setAdditionalData API is required to integrate on the SDK level with several external partner platforms, including Segment, Adobe and Urban Airship. Use this API only if the integration article of the platform specifically states setAdditionalData API is needed.
The following is a code example for implementing setAdditionalData on Unity:

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

AppsFlyer.setAdditionalData(CustomDataMap);

10. Menguji Integrasi Anda

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

11. Contoh Proyek Unity

Untuk melihat proyek contoh Unity, klik di sini.

Apakah artikel ini membantu?
0 dari 3 menganggap ini berguna

Komentar

0 komentar

Harap login untuk memberikan komentar.

Artikel dalam bagian ini