Tích hợp AppsFlyer SDK - iOS

  • Nhà quảng cáo
  • Nhà phát triển

ios.pngSDK Phiên bản: 4.10.0 (Ghi chú phát hành)

1. Tổng quan

This guide details how to integrate AppsFlyer's SDK into your iOS app. You can record installs, updates, sessions, and additional in-app events as well as app installs (including in-app purchases, game levels, etc.) to evaluate ROI and user engagement levels. The iOS SDK is compatible with all iOS devices (iPhone, iPod, iPad) with iOS version 6 and later.

 Lưu ý

SDK của AppsFlyer hoàn toàn phù hợp với Mạng IPv6 DNS64/NAT64 của Apple. Để biết thêm thông tin chi tiết, nhấp vào đây.

 Quan trọng!

SDK của AppsFlyer tận dụng lớp NSUserDefaults. Xoá tất cả các giá trị khỏi NSUserDefaults có thể gây ra các vấn đề phân bổ.

 Lời khuyên

  • In order to implement basic SDK integration that is, install attribution only, it is mandatory to complete the procedures in sections 2 and 3 in this document. 
  • It is recommended that you read the Recording in-app events section as an aid to implementation
  • The rest of the described features described, are optional and implementing them will depend on your app's business logic. For example, recording revenue or getting the conversion data on first launch may be vital for your app's flow

2. Bắt đầu nhanh

2.1 Tải về và thêm SDK của AppsFlyer vào Xcode

CocoaPodsCarthageStatic FrameworkStatic Lib
  1. Đảm bảo rằng bạn đã tải xuống và cài đặt phiên bản mới nhất của CocoaPods
  2. Thêm dòng sau đây vào Podfile của bạn:
    pod 'AppsFlyerFramework'
  3. chạy pod install
  4. Đảm bảo rằng bạn sử dụng tệp .xcworkspace để mở các dự án trong Xcode, thay vì sử dụng tệp .xcodeproj từ nay trở đi.

SDK của AppsFlyer sử dụng các khung gốc dưới đây:

AdSupport.framework
Khung này là bắt buộc để thu thập IDFA từ các thiết bị.
Nếu không có IDFA, bạn không thể theo dõi quảng cáo Facebook, Twitter, quảng cáo của Google và các mạng khác.
iAd.framework
Khung này là cần thiết để ghi nhận và đo lường hiệu suất các quảng cáo Tìm kiếm Apple trong ứng dụng của bạn

2.2 Định cấu hình Tích hợp trong App Delegate

SwiftObjective-C

Trong AppDelegae.swift, thực hiện những việc sau:

  1. nhập AppsFlyerLib
  2. Thêm AppsFlyerTrackerDelegate vào khai báo lớp
nhập AppsFlyerLib
class AppDelegate: UIResponder, UIApplicationDelegate, AppsFlyerTrackerDelegate {
   // your code here
}

3. Khởi tạo SDK

Khởi tạo SDK trong phương pháp didFinishLaunchingWithOptions với ID ứng dụng của bạn từ iTunes Connect và khoá AppsFlyer dev của bạn

Lưu ý rằng bạn cần thiết lập ID ứng dụng tại đây, chỉ bằng chữ số và không có tiền tố "id".

SwiftObjective-C
AppsFlyerTracker.shared().appsFlyerDevKey = "<your-appsflyer-dev-key>";
AppsFlyerTracker.shared().appleAppID = "123456789"
AppsFlyerTracker.shared().delegate = self
#if DEBUG AppsFlyerTracker.shared().isDebug = true
#endif

 Lưu ý

Nếu isDebug=true được thiết lập, nhật ký SDK AppsFlyer sẽ được hiển thị trong giao diện điều khiển xCode

 

  • Thêm mã sau đây tại chức năng applicationDidBecomeActive :
SwiftObjective-C
func applicationDidBecomeActive(application: UIApplication) { 
// attribute Installs, updates & sessions(app opens) 
// (You must include this API to enable SDK functions) 
AppsFlyerTracker.shared().trackAppLaunch() 
// your other code here.... }

Xác minh rằng Theo dõi Khởi chạy Ứng dụng thành công

Bạn có thể xác minh yêu cầu theo dõi khởi chạy ứng dụng thành công bằng cách triển khai trackAppLaunchWithCompletionHandler. Sau đó, bạn có thể áp dụng logic để xử lý thành công hoặc thất bại của việc Theo dõi khởi chạy ứng dụng.

Ví dụ:

[[AppsFlyerTracker sharedTracker] trackAppLaunchWithCompletionHandler:^(NSDictionary<NSString *,id> *dictionary, NSError *error) {
        if (error) {
            NSLog(@"%@", error);
            return;
        }
        if (dictionary) {
            NSLog(@"%@", dictionary);
            return;
        }
        [NSException exceptionWithName:@"fatalError" reason:nil userInfo:nil];
    }];

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 trackEvent với tên sự kiện và các tham số giá trị. Xem In App Events để biết thêm thông tin chi tiết.

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 Dữ liệu thô, Pull và Push API (API Kéo và Đẩy).

Ví dụ: Mua Sự kiện trong Ứng dụng

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase,
  withValues: [
     AFEventParamRevenue: "1200",
     AFEventParamContent: "shoes",
     AFEventParamContentId: "123"
]);

swift-record-in-app-events.png

Điều này tạo ra một loại sự kiện af_purchase (sử dụng hằng số AFEventPurchase) với những giá trị sự kiện như sau: {af_revenue: 200 , af_currency: "USD", af_quantity: 2, af_content_id: "092" af_receipt_id: "9277"}

 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ừ iOS SDK phiên bản 4.8.1.

Đối với doanh thu, không thêm bất kỳ ký hiệu tiền tệ nào vì chúng không được công nhận.

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

SwiftObjective C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase,
withValues: [
  AFEventParamRevenue: @1200,
  AFEventParamCurrency : @"JPY"
]); 

Xác minh Ghi nhận Sự kiện trong Ứng dụng

Bạn có thể xác minh việc ghi nhận sự kiện trong ứng dụng có thành công hay không bằng cách thực hiện completionHandler. Sau đó, bạn có thể áp dụng logic để xử lý thành công hoặc thất bại của việc ghi nhận sự kiện.

Ví dụ:

[[AppsFlyerTracker sharedTracker] trackEventWithEventName:AFEventPurchase
	eventValues:@{AFEventParamRevenue: @"1200",
					AFEventParamContent: @"shoes",
					AFEventParamContentId: @"123"}
	completionHandler:^(NSDictionary<NSString *,id> *dictionary, NSError *error) {
	if (error) {
		NSLog(@"%@", error);
		return;
	}
	if (dictionary) {
		NSLog(@"%@", dictionary);
		return;
	}
	[NSException exceptionWithName:@"fatalError" reason:nil userInfo:nil];

5. Thực hiện Liên kết sâu

 Lời khuyên

Chúng tôi đặc biệt khuyên bạn nên tích hợp deeplink trong ứng dụng của bạn. Deeplink là một phần quan trọng của các chiến dịch retargeting và rất được khuyên dùng khi chạy các chiến dịch retargeting.

iOS9 trở lên yêu cầu ứng dụng của bạn hỗ trợ các Universal Link (Liên kết phổ dụng). Để biết thêm thông tin chi tiết, nhấp vào đây.


Để xử lý liên kết sâu, hãy thêm mã sau vào ứng dụng của bạn (trong lớp app delegate). Các phương thức trong mã này cho phép bạn có được dữ liệu liên kết sâu. Với dữ liệu liên kết sâu, bạn có thể chuyển hướng người dùng đến hoạt động ứng dụng có liên quan và phục vụ họ với nội dung có liên quan.

SwiftObjective-C

 func onConversionDataReceived(_ installData: [AnyHashable: Any]) {
  //Handle Conversion Data (Deferred Deep Link)
  }
  
  func onConversionDataRequestFailure(_ error: Error?) {
    //    print("\(error)")
  }
  
  func onAppOpenAttribution(_ attributionData: [AnyHashable: Any]) {
    //Handle Deep Link Data
    
  }
  
  func onAppOpenAttributionFailure(_ error: Error?) {
  }
// Reports app open from a Universal Link for iOS 9 or later
  func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    AppsFlyerTracker.shared().continue(userActivity, restorationHandler: restorationHandler)
    return true
  }

  // Reports app open from deep link from apps which do not support Universal Links (Twitter) and for iOS8 and below
  func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    AppsFlyerTracker.shared().handleOpen(url, sourceApplication: sourceApplication, withAnnotation: annotation)
    return true
  }

  // Reports app open from deep link for iOS 10 or later
  func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    AppsFlyerTracker.shared().handleOpen(url, options: options)
    return true
  }
  

 Quan trọng!

Đối với Swift 4.2 trở lên, sử dụng mã dưới đây cho phương thức tiếp tục userActivity:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
	AppsFlyerTracker.shared().continue(userActivity, restorationHandler: nil)
	return true
}

6. Ghi nhận Doanh thu

Sử dụng tham số sự kiện af_revenue (AFEventParamRevenue) để đế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 ý

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


Ví dụ: Sự kiện trong ứng dụng Doanh thu

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase, 
withValues: [
	AFEventParamContentId:"1234567",
	AFEventParamContentType : "category_a",
	AFEventParamRevenue: 1.99,
	AFEventParamCurrency:"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 nên chứa dấu phẩy phân cách, ký hiệu tiền tệ hoặc văn bản. Ví dụ một sự kiện doanh thu nên là 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.

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent("cancel_purchase", 
withValues: [
	AFEventParamContentId:"1234567",
	AFEventParamContentType : "category_a",
	AFEventParamRevenue: -1.99,
	AFEventParamCurrency:"USD"
]);

 Lưu ý

Lưu ý những điều sau về mã code ở 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 "cancel_purchase" - để cho phép bạn xác định các sự kiện doanh thu âm trong dashboard 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 thuộc tính người dùng trong thời gian thực cho mỗi cài đặt mới, trực tiếp từ cấp độ SDK. Bằng cách này, bạn có thể cung cấp cho người dùng nội dung được cá nhân hoá hoặc gửi họ đến các hoạt động cụ thể trong ứng dụng, việc này có thể cải thiện tương tác của họ với ứng dụng của bạn.

Để biết thêm chi tiết liên quan tới chức năng nâng cao này, nhấp vào đây.

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

Chúng ta có một số tùy chọn để lấy mã đị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. Bạn có thể nhận bằng cách sử dụng mã sau đây:

SwiftObjective-C
let appsflyerId = AppsFlyerTracker.shared().getAppsFlyerUID()

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

Thiết lập customer ID riêng cho phép bạn tham chiếu ID riêng của bạn với ID riêng của AppsFlyer và ID của các thiết bị khác. ID này hiển thị trong các báo cáo CSV của AppsFlyer cùng với các Postback API để tham chiếu với các ID nội bộ của bạn.

Để thiết lập ID người dùng Customer User ID:

SwiftObjective-C
AppsFlyerTracker.shared().customerUserID = "my user id"

 Lưu ý quan trọng

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. Nếu setCustomerUserId được gọi trước trackAppLaunch, Customer User ID sẽ xuất hiện trong xuất dữ liệu thô cho các lượt cài đặt và sự kiện. Nếu ID này được thiết lập sau, bạn sẽ chỉ thấy giá trị cho các sự kiện được theo dõi sau khi gọi phương thức này.

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ư Mixpanel và Swrve.

Nhận Customer User ID:

Để nhận customer User ID, hãy lấy từ sharedTracker.

[AppsFlyerTracker sharedTracker].customerUserID

 Quan trọng!

Đảm bảo đặt customer user ID 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.

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 có AdSupport.framework trong ứng dụng.

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

Đo lường lượt Gỡ cài đặt

Để Gỡ cài đặt theo dõi, hãy bật thông báo đẩy từ xa trên ứng dụng của bạn. Xem Hướng dẫn Lập trình Thông báo Từ xa của Apple để biết thêm chi tiết.

Làm theo hướng dẫn tích hợp iOS SDK  để hoàn tất thiết lập tính năng gỡ cài đặt.

Ghi nhận thông báo đẩy

Để cho phép Tracking App Launches từ thông báo đẩy, thêm mã sau đây vào app delegate của bạn:

SwiftObjective-C
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
	AppsFlyerTracker.shared().handlePushNotification(userInfo)
}

Thông báo đẩy cần có một tham số af với tham số phân bổ AppsFlyer.

Ví dụ tin nhắn:

{
  "aps":{
   "alert":"Push text",
   "sound":"default",
   "category":"REMINDER_CATEGORY"
  },
  "_p":123456,
  "payloadKey":"payloadValue",
  "af":{
   "pid":"swrve_int",
   "is_retargeting":"true",
   "c":"test_campaign"
  }
}

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 AFEventParamCurrency 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 currencyCode(String currencyCode);

Ví dụ cách dùng:

SwiftObjective-C
AppsFlyerTracker.shared().currencyCode = "USD"

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

 Lưu ý

Chức năng này được hỗ trợ cho iOS7 trở lên.

SDK AppsFlyer có thể cung cấp xác minh máy chủ mua hàng trong ứng dụng. Để thiết lập theo dõi xác thực hóa đơn, bạn cần gọi phương thức validateAndTrackInAppPurchase  bên trong SKStoreKit’s completeTransaction: callback. Phần gọi này tự động tạo ra sự kiện trong ứng dụng af_purchase.

- (void) validateAndTrackInAppPurchase:(NSString *) productIdentifier
price:(NSString *) price
currency:(NSString *) currency
transactionId:(NSString *) tranactionId
additionalParameters:(NSDictionary *) params
success:(void (^)(NSDictionary *response)) successBlock
failure:(void (^)(NSError *error, id reponse)) failedBlock;

 Lưu ý

Tham số giá phải bao gồm tổng doanh thu liên quan đến sự kiện mua hàng đã được xác nhận.


Phần gọi này có hai khối gọi lại, một cho 'thành công' và một cho 'thất bại' (vì lý do bất kỳ, bao gồm cả xác minh thất bại). Khi thành công, một từ điển được trả về với dữ liệu xác nhận biên nhận được cung cấp bởi các máy chủ của Apple.  

 Quan trọng

Đối với mục đích test, chúng tôi khuyên bạn đặt cờ  useReceiptValidationSandbox thành YES, vì như vậy sẽ chuyển hướng các yêu cầu tới máy chủ sandbox của Apple.

#ifdef DEBUG
[AppsFlyerTracker sharedTracker].useReceiptValidationSandbox = YES;
#endif

 

 Ví dụ

Objective-C Swift
[[AppsFlyerTracker sharedTracker] validateAndTrackInAppPurchase:@"ProductIdentifier" price:@"price"
    currency:@"USD"
    transactionId:@"transactionID"
    additionalParameters:@{@"test": @"val" , @"test1" : @"val 1"}
    success:^(NSDictionary *result){
      NSLog(@"Purchase succeeded And verified!!! response: %@", result[@"receipt"]);
    } failure:^(NSError *error, id response) {
      NSLog(@"response = %@", response);
      if([response isKindOfClass:[NSDictionary class]]) {
        if([response[@"status"] isEqualToString:@"in_app_arr_empty"]){
          // retry with 'SKReceiptRefreshRequest' because
          // Apple has returned an empty response
          // <YOUR CODE HERE>
        }

      } else {
        //handle other errors
        return;
      }
  }];

 Quan trọng!

Khi AppsFlyer xác thực giao dịch mua với các máy chủ của Apple, nếu phản hồi chứa mảng trống in-app, AppsFlyer trả lại {"status":"in_app_arr_empty"} về cuộc gọi lại lỗi.

Nếu bạn nhận được cờ này, bạn phải khôi phục sản phẩm đã mua với Apple bằng cách gửi yêu cầu làm mới hóa đơn. Để biết thêm thông tin vui lòng xem tài liệu hướng dẫn của Apple.

Sau khi làm mới biên lai, hãy gọi validateAndTrackInAppPurchase một lần nữa.

Xem mã ở trên để tìm hiểu làm thế nào để xử lý lỗi này.

Để biết danh sách các giá trị trả về có thể để xác nhận hóa đơn, vui lòng tham khảo tài liệu của Apple tại đây.

Ẩn danh

AppsFlyer cung cấp cho bạn phương thức ẩn danh mã định danh người dùng 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:

SwiftObjective-C
AppsFlyerTracker.shared().deviceTrackingDisabled = true

Có thể khởi động lại việc theo dõi bằng cách gọi deviceTrackingDisabled được đặt là false.

 Cảnh báo

Việc ẩn danh 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:

SwiftObjective-C
AppsFlyerTracker.shared().minTimeBetweenSessions = <your_custom_time_in_seconds>
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

Không khả dụng trong iOS. 
 

Tiện ích mở rộng ứng dụng iOS và WatchKit

Phần mở rộng ứng dụng yêu cầu cho phép sử dụng Internet:

  1. Đi tới tệp tin info.plist của phần mở rộng ứng dụng của bạn
  2. Trong NSExtension / NSExtensionAttributes đặt cờ RequestsOpenAccess thành YES.

Thêm mã sau đây vào UIViewController viewDidLoad của phần mở rộng ứng dụng:

SwiftObjective-C
override func viewDidLoad() {  
    super.viewDidLoad()
    AppsFlyerTracker.shared().appsFlyerDevKey = "MY_APPSFLYER_KEY"

    // MY_APP_ID below stands for you app ID on iTunes Connect. Should be 9 or 10 digits.
    AppsFlyerTracker.shared().appleAppID = "MY_APP_ID"
        
    AppsFlyerTracker.sharedTracker().trackAppLaunch()
  }

Để nhận dữ liệu phân bổ trên phần mở rộng ứng dụng, hãy làm theo những hướng dẫn tại đây và thực hiện trên UIViewController của ứng dụng của bạn thay vì ở trong AppDelegate.

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.

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

SwiftObjective-C
AppsFlyerTracker.shared().isStopTracking = true

 Quan trọng

Không gọi trackAppLaunch nếu isStopTracking được đặt là true

Thu thập Tên Thiết bị

AppsFlyer SDK cho phép bạn thu thập Tên Thiết bị để phân tích nội bộ của bạn. Theo mặc định, tính năng này bị tắt. Để bật tính năng này, hãy sử dụng API sau:

SwiftObjective-C
AppsFlyerTracker.shared().shouldCollectDeviceName = false

 Quan trọng

Ở một số khu vực nhất định, Tên Thiết bị có thể được coi là Dữ liệu Cá nhân. Chỉ thu thập thông tin này nếu bạn biết bạn được pháp luật cho phép và đã nhận được sự đồng ý rõ ràng của người dùng.

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 iOS dành cho Objective-C hoặc Swift:

Objective-C Swift
NSDictionary* CustomDataMap = [[NSDictionary alloc] initWithObjectsAndKeys:@"value_of_param_1", @"custom_param_1", nil];
  
[[AppsFlyerTracker sharedTracker] setAdditionalData:CustomDataMap];

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 Phổ dụng Android và gói chúng bằng Liên kết Phổ dụng 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.

Objective-C Swift
[AppsFlyerTracker sharedTracker].resolveDeepLinkURLs = @[@"example.com",@"click.example.com"];

10. Kiểm tra Tích hợp

Để biết chi tiết về cách thử nghiệm tích hợp của bạn, nhấp vào đây.

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

11. Gửi ứng dụng đến App Store

Bạn có thể tìm thấy các hướng dẫn về cách gửi ứng dụng của bạn vào App Store ở đây.

Bài viết này có hữu ích không?
10 trên 18 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.

Nội dung trang: