Tích hợp SDK Unity cho những nhà phát triển

Official_unity_logo.png

Phiên bản SDK Unity hiện tại: v4.20.1
Dựa trên SDK của AppsFlyer Android v4.10.0 và SDK của AppsFlyer iOS v4.10.0

1. Tổng quan

SDK Unity của AppsFlyer cung cấp chức năng cài đặt ứng dụng di động và ghi nhận sự kiện cho các dự án Unity của Android và iOS. Bạn có thể ghi nhận lượt cài đặt, cập nhật và các phiên làm việc, cũng như ghi nhận 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à lượt cài đặt phân bổ cho 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 Unity phiên bản 5 trở lên

 Quan trọng!

Google Play Install Referrer API được hỗ trợ từ phiên bản Unity Plugin v 4.16.0. Nếu bạn muốn sử dụng new Referrer API, hãy cập nhật lên phiên bản 4.16.0 hoặc cao hơn.

 Lời khuyên

  • Chương 2 và 3 là BẮT BUỘC để thực hiện tích hợp SDK CƠ BẢN, tức là chỉ cài đặt thuộc tính
  • Chương Ghi nhận sự kiện trong ứng dụngđược ĐẶC BIỆT ĐỀ XUẤT thực hiện
  • Các tính năng còn lại được mô tả là TÙY CHỌN triển khai, mặc dù một số trong các tính năng đó có thể cần thiết, tùy thuộc vào logic kinh doanh của ứng dụng của bạn. Ví dụ, ghi nhận doanh thu hoặc lấy được dữ liệu cuộc trò chuyện vào lần khởi chạy đầu tiên có thể là quan trọng cho quy trình ứng dụng của bạn

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


Thiết lập AF receiver và cấp quyền cho 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" />


Thiết lập các quyền bắt buộc

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


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


Các Framework và Thư viện được liên kết


Sau khi xây dựng dự án trong Unity cho xCode, bạn phải thêm Security.Framework vào các Framework và Thư viện được liên kết của xCode nếu trước đó chưa thêm framework.


Quảng cáo Tìm kiếm của Apple iOS

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ể phân bổ 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 để phân bổ các Quảng cáo Tìm kiếm của Apple.

3. Khởi tạo SDK

Trong các phương thức Start / Init, bạn thiết lập AppsFlyer dev key và các ID ứng dụng riêng được sử dụng bởi iTunes và Google Play.  Lưu ý rằng bạn cần thiết lập ID ứng dụng iOS tại đây, chỉ bằng chữ số và không có tiền tố "id".

Thêm đoạn mã sau:

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");
/* 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
}

 Quan trọng!

  • Đối với Android, AppsFlyer.init bao gồm cả gọi trackAppLaunch. Do đó, không gọi trackAppLaunch trong bản dựng Android của trình cắm Unity.
  • Trong iOS, phản hồi dữ liệu chuyển đổi được kích hoạt trong lớp AppsFlyerTrackerCallbacks.cs.

4. Ghi nhận 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 bạn theo dõi ROI (Lợi tức đầu tư) và LTV (Giá trị vòng đời).

Việc ghi nhận các sự kiện trong ứng dụng được thực hiện bằng cách gọi trackRichEvent 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).


Ví dụ về Ghi nhận sự kiện:

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 hỗ trợ các ký tự không phải tiếng Anh với những sự kiện trong ứng dụng, hoặc với bất kỳ SDK API nào khác, bắt đầu từ Unity SDK phiên bản 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 tương ứng cho hệ điều hành của bạn.

AndroidiOS
Thêm đoạn sau vào tập tin kê khai của bạn:

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

Để nhận dữ liệu liên kết sâu, bạn phải thực hiện việc gọi lại onAppOpenAttribution (được tìm thấy trong lớp AppsFlyerTrackerCallbacks) được gọi bởi AppsFlyer SDK. Nó sẽ trả về các tham số Onelink/liên kết phân bổ được dùng để kích hoạt mở ứng dụng. Sau đó, bạn có thể phân tích các giá trị và áp dụng logic để kích hoạt trang ứng dụng thích hợp. Sau đó, bạn có thể phân tích các giá trị và áp dụng logic để kích hoạt trang ứng dụng thích hợp.

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

6. Ghi nhận 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ể điền giá trị số bất kỳ, âm hoặc dương.

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

 Quan trọng!

KHÔNG định dạng giá trị doanh thu theo bất kỳ cách nào. Định dạng không được chứa dấu phẩy phân tách, ký hiệu tiền tệ hoặc văn bản. Ví dụ, giá trị doanh thu nên có dạng 1234.56.

Ghi nhận doanh thu âm

Nếu bạn cần ghi nhận doanh thu âm, ví dụ: khi người dùng hủy giao dịch mua hoặc nhận tiền hoàn lại, bạn có thể gửi doanh thu âm.

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

 Lưu ý

Lưu ý những điều sau trong mã ở trên:

  1. Giá trị doanh thu được bắt đầu bằng dấu trừ
  2. Tên sự kiện có giá trị duy nhất là "cancel_purchase" - để cho phép bạn xác định các sự kiện doanh thu âm trong bảng điều khiển và báo cáo dữ liệu thô

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
/*Để nhận được  conversion data trong Android, bạn cần thêm listener này. vào init() method*/
AppsFlyer.init ("YOUR_DEV_KEY","AppsFlyerTrackerCallbacks");


Trong Android, bạn có thể di chuyển các phương thức từ AppsFlyerTrackerCallbacks.cs tới một lớp khác và gọi lớp đó trong listener của bạn.

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


Ví dụ về cách sử dụng:

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 ngay khi có thể bởi ID này chỉ liên kết với các sự kiện được báo cáo sau khi thiết lập ID. 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.

 Quan trọng!

Đối với iOS - Đảm bảo đặt ID người dùng của khách hàng mỗi khi ứng dụng được khởi chạy, trước khi gọi trackAppLaunch

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

ID quảng cáo Google

Kể từ SDK phiên bản 4.15.1, AppsFlyer tự động thu thập google_advertising_id. Yêu cầu thu thập ID quảng cáo Google chỉ phù hợp với SDK các phiên bản thấp hơn 4.15.1.

IMEI và Android ID

SDK mặc định không thu thập IMEI và Android ID nếu phiên bản hệ điều hành cao hơn KitKat (4.4) và thiết bị chứa Google Play Services (trên SDK phiên bản 4.16.4 trở xuống thì ứng dụng cụ thể cần GPS). 

Để 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)

Nếu ứng dụng KHÔNG chứa Google Play Services thì SDK sẽ thu thập IMEI và Android ID. Tuy nhiên, ứng dụng có Google play services nên tránh thu thập IMEI vì việc này vi phạm chính sách của Google Play.

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ỡ cài đặt

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

Android - FirebaseAndroid - GCMiOS
1.  Tải về Unity Firebase SDK từ: https://firebase.google.com/docs/unity/setup
2.  Nhập FirebaseMessaging.unitypackage vào dự án.
3.  Nhập google-services.json vào dự án (thu được trong giao diện Firebase)

 Lưu ý

Manifest receivers sẽ được Unity Firebase SDK tự động thêm vào.


4.  Trong lớp Unity xử lý mã AppsFlyer, hãy thêm đoạn sau:
sử dụng Firebase.Messaging;
sử dụng Firebase.Unity;

5.  Thêm vào phương thức Start():
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;

6.  Thêm phương thức sau:
public void OnTokenReceived
  (object sender, Firebase.Messaging.TokenReceivedEventArgs token) { 
    AppsFlyer.updateServerUninstallToken (token.Token);
}

 

 Cảnh báo

Những người dùng thực thi Unity Firebase SDK không nên thêm gọi phương thức sau vào enableUninstallTracking(“SenderID”) vì Firebase SDK sẽ thu được ID người gửi từ tập tin google-services.json mà chúng ta đã thêm vào trước đó. Thêm phương thức này có thể gây ra một cảnh báo gỡ lỗi từ Android.

Ghi nhận 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.

Phân bổ Quảng cáo chéo

AppsFlyer cho phép bạn phân bổ và ghi nhận các cài đặt có nguồn gốc từ quảng cáo chéo của một trong những ứng dụng của bạn từ bên trong ứng dụng hiện tại mà người dùng có. Ứng dụng quảng cáo chéo có thể là một yếu tố tăng trưởng chính trong việc thúc đẩy các lượt cài đặt thêm cho ứng dụng của bạn. Để biết thêm thông tin chi tiết, vui lòng xem bài viết Phân bổ Quảng cáo chéo, tại đây.

Phân bổ Mời người dùng

AppsFlyer cho phép bạn phân bổ và ghi nhận lượt cài đặt có nguồn gốc từ lời mời của người dùng trong ứng dụng của bạn. Việc cho phép người dùng hiện tại mời bạn bè và những mối liên hệ của họ sử dụng ứng dụng có thể là một yếu tố tăng trưởng then chốt với ứng dụng của bạn.

Để biết thêm chi tiết, hãy xem bài viết Phân bổ mời người dùng, tại đây.

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
//Để lấy callback
//AppsFlyer.createValidateInAppListener ("AppsFlyerTrackerCallbacks", 
"onInAppBillingSuccess", "onInAppBillingFailure"); AppsFlyer.validateReceipt(string publicKey, string purchaseData,
string signature, string price, string currency, Dictionary additionalParametes);

 Lưu ý

  • Gọi validateReceipt  sẽ tự động tạo ra một sự kiện trong ứng dụng af_purchase, vì vậy bạn không cần phải tự gửi sự kiện này.
  • Xác nhận mua hàng hợp lệ được kích hoạt trong lớp AppsFlyerTrackerCallbacks.cs.

Ẩn danh Dữ liệu Người dùng

AppsFlyer cung cấp cho bạn phương thức ẩn danh mã định danh người dùng cụ thể trong phân tích AppsFlyer. Phương thức này phù hợp với yêu cầu bảo mật mới nhất và tuân thủ chính sách dữ liệu và quyền riêng tư của Facebook. Mặc định là KHÔNG, có nghĩa là mặc định không thực hiện ẩn danh.

Sử dụng API này trong quá trình Khởi tạo SDK để ẩn danh hoàn toàn các cài đặt, sự kiện và phiên của người dùng:

public void setDeviceTrackingDisabled(boolean isDisabled);

Ví dụ cách dùng:

AppsFlyer.setDeviceTrackingDisabled(true);
Có thể khởi động lại việc phân bổ và ghi nhận sự kiện bằng cách gọi lại deviceTrackingDisabled được thiết lập là false.

 Cảnh báo

Lựa chọn không tham gia của người dùng sẽ làm ảnh hưởng NGHIÊM TRỌNG đến thông tin phân bổ của bạn.
CHỈ sử dụng tùy chọn này cho các khu vực mà pháp luật nghiêm cấm thu thập thông tin của người dùng.

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

Theo mặc định, phải mất ít nhất 5 giây giữa 2 lần khởi chạy ứng dụng để được tính là 2 phiên riêng biệt (tìm hiểu thêm về tính các phiên).

Tuy nhiên, bạn có thể sử dụng API sau để đặt giá trị tùy chỉnh cho thời gian yêu cầu tối thiểu giữa các phiên:
setMinTimeBetweenSessions(int seconds)


Ví dụ về cách dùng:

AppsFlyer.setMinTimeBetweenSessions(10);

Lưu ý rằng việc đặt một giá trị cao cho thời gian tùy chỉnh giữa hai phiên khởi chạy có thể ảnh hưởng xấu tới API dựa trên dữ liệu về số lần mở ứng dụng, chẳng hạn như deep linking.

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

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

Phân bổ ứ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.

Để ghi nhận 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 ghi nhận 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.

Lựa chọn không tham gia

AppsFlyer cho phép bạn theo dõi và phân bổ lượt cài đặt có nguồn gốc từ lời mời của người dùng trong ứng dụng của bạn. Có thể thực hiện việc này bằng isStopTracking API. Khi API được thu hồi, SDK sẽ không còn giao tiếp được với các máy chủ của chúng tôi và dừng hoạt động.

AppsFlyer.stopTracking(true);

Trong bất kỳ sự kiện nào, SDK có thể được kích hoạt lại bằng cách gọi API tương tự, nếu kết quả là sai.

Có một số trường hợp khác nhau để người dùng lựa chọn không tham gia. Chúng tôi khuyên bạn nên thực hiện theo những hướng dẫn chính xác cho từng trường hợp liên quan tới ứng dụng của bạn.

 Cảnh báo

Chỉ sử dụng API này trong trường hợp bạn muốn hoàn toàn bỏ qua người dùng này trong mọi ghi nhận sự kiện và phân bổ. Việc sử dụng API này ảnh hưởng NGHIÊM TRỌNG đến việc phân bổ, thu thập dữ liệu và cơ chế liên kết sâu của bạn.

Thiết lập Dữ liệu Tùy chỉnh Bổ sung

Phải có API setAdditionalData để tích hợp ở cấp SDK với một số nền tảng đối tác bên ngoài, bao gồm Segment, Adobe và Urban Airship. Chỉ sử dụng API nếu bài viết tích hợp của nền tảng nêu rõ rằng bắt buộc phải có setAdditionalData API.
Sau đây là ví dụ đoạn mã thực hiện setAdditionalData trên Unity:

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

Phân bổ cho Ứng dụng cài đặt sẵn

Chỉ dành cho Android

Bạn có thể lập trình thiết lập nguồn phương tiện được cài đặt sẵn, từ Unity, sử dụng API sau:

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

Để biết chi tiết về việc triển khai gốc, nhấp vào đây.

Giải quyết các URL Liên Kết Sâu Được Gói

Nếu bạn đang sử dụng OneLinks hỗ trợ Liên kết ứng dụng Android và gói chúng bằng Liên kết Chung Bên thứ 3, bạn có thể sử dụng API setResolveDeepLinkURLs để thông báo cho AppsFlyer SDK nhấp vào các tên miền gọi ứng dụng phải được SDK giải quyết và trích xuất OneLink bên dưới từ chúng. Thao tác này sẽ cho phép bạn duy trì liên kết sâu và theo dõi trong khi gói OneLink bằng Liên kết Phổ dụng Bên thứ 3. Đảm bảo gọi API này trước khi khởi tạo SDK.

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

 Quan trọng!

Khi sử dụng AppsFlyer Unity SDK, hãy tránh

PlayerPrefs.DeleteAll()

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.

Bây giờ bạn có thể bắt đầu đo lường kết quả của các nguồn phương tiện truyền thông bạn làm việc cùng.

11. Vấn đề đã biết

ProGuard

Nếu bạn đang dùng ProGuard cho Android  và gặp cảnh báo liên quan đến lớp AFKeystoreWrapper của chúng tôi, hãy thêm đoạn mã sau vào tập tin quy tắc ProGuard:

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

IL2CPP

Để loại trừ SDK của chúng tôi khỏi mã bytecode được quản lý với IL2CPP, hãy thêm phần sau vào tệp link.xml:

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

IMPL_APP_CONTROLLER_SUBCLASS

Nếu bạn đang sử dụng plugins bổ sung cần ghi đè AppControllerClassName, hãy sửa đổi AppsFlyerAppController như bên dưới (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. 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?
4 trên 12 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