Tích hợp SDK của 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. Tổng quan

AppsFlyer của SDK cung cấp cài đặt ứng dụng di động và các chức năng theo dõi sự kiện cho điện thoại Android, iOS, Windows Phone và rất nhiều các nền tảng phát triển di động khác.

Bạn có thể theo dõi lượt cài đặt, cập nhật và các phiên làm việc, cũng như theo dõi các sự kiện sau cài đặt (bao gồm các hoạt động mua hàng trong ứng dụng, cấp độ trò chơi, v.v.) để đánh giá lợi tức đầu tư (ROI) và mức độ tương tác của người dùng.

Ứng dụng di động được phát triển trên nền tảng Unity có thể nhận tích hợp SDK của AppsFlyer một lần và theo dõi những ứng dụng được tạo ra bởi cả Android và iOS. Hướng dẫn này làm rõ cách tích hợp SDK của AppsFlyer vào mã Unity của bạn cho những ứng dụng iOS và Android.

 Lưu ý

AppsFlyer hỗ trợ tích hợp với Hệ điều hành Unity phiên bản 5 trở lên

 Quan trọng!

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. Bắt đầu nhanh

2.1 Tải về Trình cắm Unity của AppsFlyer

Bạn có thể tìm thấy trình cắm trên Github tại đây: https://github.com/AppsFlyerSDK/Unity

Dưới đây là hướng dẫn tích hợp cho việc sử dụng Trình cắm Unity của AppsFlyer.

2.2 Cài đặt Trình cắm

Dưới đây là hướng dẫn tích hợp trình cắm của AppsFlyer:

  1. Nhập AppsFlyerUnityPlugin.unitypackage vào dự án Unity của bạn.
  2. Đi tới Assets >> Import Package >> Custom Package
  3. Lựa chọn tệp tin AppsFlyerUnityPlugin.unitypackage.

2.3 Thiết lập bắt buộc dành cho Android và iOS

Thiết lập 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

AndroidManifest.xml bao gồm các quyền sau đây:

<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

Hai lựa chọn sau đây khả dụng cho việc thực hiện bộ phận thu nhận truyền phát tham chiếu cài đặt (Broadcast Receiver):

Sử dụng Single Broadcast Receiver Sử dụng Multiple Broadcast Receiver

Nếu bạn không có bộ phận thu nhận nghe trên INSTALL_REFERRER, trong AndroidManifest.xml, hãy thêm thành phần thu nhận sau đây bên trong phần application tag:

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

Thiết lập 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

Thêm các nội dung sau:

AdSupport.framework
AppsFlyer chỉ thu thập IDFA khi bạn bao gồm khung này. Không thêm khung này có nghĩa là bạn không thể theo dõi Facebook, Twitter và hầu hết các mạng quảng cáo khác.
iAd.framework

Chúng tôi khuyên bạn nên thêm khung này vào dự án ứng dụng, vì điều này là bắt buộc để theo dõi các Quảng cáo Tìm kiếm của Apple.

3. Khởi tạo 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:

Trình cắm Unity Plugin 4.15.1 trở lên Trình cắm Unity 4.14.3 trở xuống
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
}

 Quan trọng!

  • 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. Theo dõi sự kiện trong ứng dụng

Sự kiện trong ứng dụng cung cấp thông tin chi tiết về những gì đang xảy ra trong ứng dụng của bạn. Bạn nên dành thời gian và xác định các sự kiện bạn muốn đo lường để cho phép theo dõi ROI (Lợi tức Đầu tư) và LTV (Giá trị Tuổi thọ).

Theo dõi các sự kiện trong ứng dụng bằng cách gọi  trackEvent với tên sự kiện và các tham số giá trị. Xem tài liệu Sự kiện trong Ứng dụng để biết thêm chi tiết.

 Lưu ý

Tên của Sự kiện trong ứng dụng không được dài quá 45 ký tự. Tên sự kiện dài hơn 45 ký tự sẽ không xuất hiện trong bảng điều khiển, mà chỉ xuất hiện trong ữ liệu thô, Pull và Push API (Kéo và Đẩy).


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

 Lưu ý

AppsFlyer supports non-English characters with in-app events, or with any other SDK API, starting from Unity SDK version 4.15.1.

5. Theo dõi Liên kết sâu

Với Liên kết sâu, hãy làm theo hướng dẫn theo hệ điều hành của bạn.

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. Theo dõi doanh thu

Sử dụng tham số sự kiện AFInAppEvents.REVENUE để đếm doanh thu như một phần của sự kiện trong ứng dụng. Bạn có thể gán một giá trị số bất kỳ, số dương hoặc âm.

 Lưu ý

AFInAppEvents.REVENUE(tương đương với việc sử dụng af_revenue) là tham số sự kiện DUY NHẤT được đếm trên AppsFlyer như là doanh thu thật trên dữ liệu thô và bảng điều khiển. Để biết thêm chi tiết, vui lòng nhấp vào đây.

 Ví dụ

Sự kiện Doanh thu trong Ứng dụng
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. Lấy dữ liệu chuyển đổi

AppsFlyer cho phép bạn truy cập dữ liệu chuyển đổi người dùng trong thời gian thực ở cấp độ SDK. Ứng dụng cho phép bạn tùy chỉnh trang đích mà người dùng xem trên các ứng dụng đầu tiên mở sau một ứng dụng mới cài đặt.

Để tải dữ liệu chuyển đổi AppsFlyer từ máy chủ:

  1. Thêm một GameObject trống
  2. Đính kèm vào ứng dụng một AppsFlyerTrackerCallbacks.cs, tệp này có trong dự án (bạn phải đặt tên cho gameobject AppsFlyerTrackerCallbacks).
Trình cắm Unity Android > 4.15.1 Trình cắm Unity Android < 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.

Bạn phải sử dụng vùng tên phương pháp chính xác xuất hiện trên AppsFlyerTrackerCallbacks.

8. Bộ định danh người dùng

Nhận ID thiết bị AppsFlyer

ID thiết bị riêng của AppsFlyer được tạo cho mỗi lần cài đặt mới của ứng dụng. Hãy sử dụng các API sau đây để thu được ID riêng của AppsFlyer:

public String getAppsFlyerId();


Usage Example:

string AppsFlyerUID = AppsFlyer.getAppsFlyerId();

Thiết lập ID người dùng Customer User ID

Thiết lập ID Người dùng được sử dụng bởi ứng dụng. 

Để thiết lập ID người dùng, gọi phương pháp sau đây:

AppsFlyer.setCustomerUserID("someId");

 Lưu ý

customerUserID NÊN được thiết lập trước trackAppLaunch/init. Bạn nên thiết lập Customer User ID của bạn càng sớm càng tốt bởi vì nó chỉ liên quan tới các sự kiện được báo cáo sau khi thiết lập. Customer User ID cũng có thể được sử dụng để hoàn thành việc tích hợp với các nền tảng Phân tích như MixpanelSwrve.

Để biết thêm thông tin về Customer User ID, nhấp vào đây.

Thiết lập Email người dùng

Hiện không có sẵn trong Unity.

ID quảng cáo Google

Kể từ SDK phiên bản 4.8.0, AppsFlyer tự động thu thập google_advertising_id. Yêu cầu thu thập ID Quảng cáo Google chỉ tương thích với SDK phiên bản 4.7.X trở xuống.

IMEI và Android ID

SDK mặc định không thu thập IMEI và Android ID nếu phiên bản OS cao hơn KitKat (4.4) và ứng dụng chứa các Dịch vụ Google Play.  

Để gửi một cách rõ ràng các ID này tới AppsFlyer, nhà phát triển có thể sử dụng các API sau:

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.

Nhà phát triển có thể chọn không tham gia thu thập IMEI và Android ID bằng cách sử dụng các API này:

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

 Cảnh báo

Phải thu thập ít nhất một mã nhận dạng thiết bị, GAID, Android ID hoặc IMEI để đảm bảo phân bổ thuộc tính đúng.

IDFA và IDFV

AppsFlyer tự động thu thập IDFA (ID cho Nhà quảng cáo) và IDFV (ID cho Nhà cung cấp) nếu AdSupport.framework được đưa vào ứng dụng.

9. Tính năng tùy chọn

Đo lường lượt gỡ ứng dụng

Để Đo lường lượt gỡ ứng dụng, hãy làm theo những hướng dẫn theo hệ điều hành của bạn.

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)

 Lưu ý

Manifest receivers should be automatically added by the Unity Firebase SDK.


4.  In the Unity class handling the AppsFlyer code, add the following:
sử dụng Firebase.Messaging;
sử dụng 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);
    }

 

 Cảnh báo

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.

Theo dõi Thông báo đẩy

AppsFlyer cho phép bạn đo số lượng thông báo đẩy như một phần của chiến dịch xác định lại mục tiêu.

handlePushNotification(Dictionary<string, string> payload)

Tải trọng dữ liệu nên bao gồm một đối tượng: af với chuỗi giá trị khóa thích hợp:

Ví dụ:

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

 Lưu ý

Để biết thêm thông tin về đo số lượng thông báo đẩy, hãy đọc tại đây.

Theo dõi Quảng cáo chéo

Hiện không có sẵn trong Unity.

Theo dõi mời người dùng

Hiện không có sẵn trong Unity.

Thiết lập mã tiền tệ

Bạn có thể thiết lập một mã tiền tệ chung bằng cách sử dụng API dưới đây, bổ sung cho các mã tiền tệ cụ thể có thể được sử dụng như một phần của từng sự kiện trong ứng dụng được gửi đến AppsFlyer. Mã tiền tệ chung được sử dụng khi af_currency

AFInAppEvents.CURRENCY

không được gửi như một phần của sự kiện trong ứng dụng.

USD là giá trị mặc định. Bạn có thể tìm các mã ISO được chấp nhận tại đây.

Sử dụng API sau đây để thiết lập mã tiền tệ:

public void setCurrencyCode(String currencyCode);

Ví dụ cách dùng:

setCurrencyCode(string currencyCode)

Xác nhận mua hàng trong ứng dụng

Đối với Xác nhận Hoá đơn Mua hàng trong Ứng dụng, hãy làm theo các hướng dẫn theo hệ điều hành của bạn.

Gọi Android Gọi Listener (chỉ dành cho 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);

Xác nhận mua hàng hợp lệ được kích hoạt trong lớp 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);

Ví dụ cách dùng:

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

 Cảnh báo

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

Tùy chỉnh thời gian giữa các phiên

Hiện không có sẵn trong Unity.

Phiên chạy nền cho ứng dụng tiện ích

Hiện không có sẵn trong Unity.

Theo dõi ứng dụng không có trong cửa hàng

 Lưu ý

Google Play là cửa hàng mặc định. Nếu bạn chỉ phát hành ứng dụng trên Google Play, hãy bỏ qua phần này.

Để theo dõi tiến trình cài đặt ngoài Google Play, hãy thiết lập kênh/cửa hàng tại AndroidManifest.xml của ứng dụng với một kênh duy nhất hoặc bất kỳ tên cửa hàng nào cho từng APK. Giá trị CHANNEL có phân biệt chữ hoa, chữ thường.

<Ví dụ:

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

 Lưu ý

Bạn phải cấu hình giá trị CHANNEL tại bảng điều khiển của AppsFlyer khi thiết lập ứng dụng.

Đặt thẻ meta-data trước thẻ </application>.

Để biết thêm chi tiết về cách theo dõi lượt cài đặt cho các ứng dụng không có trong cửa hàng, hãy đọc tại đây.

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. Kiểm tra Tích hợp

Để được hướng dẫn cách kiểm tra tích hợp theo hệ điều hành của bạn, hãy nhấp vào  Kiểm tra Android hoặc Kiểm tra iOS.

11. Dự án Mẫu Unity

Để xem một dự án mẫu Unity, hãy nhấp vào đây.

Bài viết này có hữu ích không?
2 trên 6 thấy hữu ích

Bình luận

0 bình luận

Vui lòng đăng nhập để viết bình luận.

Các bài viết trong mục này