Tích hợp AppsFlyer SDK - iOS

ios.pngSDK Version: 4.8.3 (Release notes)

1. Tổng quan

Hướng dẫn này làm rõ cách tích hợp SDK của AppsFlyer vào ứng dụng iOS của bạn. Bạn có thể theo dõi lượt cài đặt, cập nhật, các phiên làm việc và các sự kiện trong ứng dụng bổ sung cũng như các ứng dụng cài đặt (bao gồm 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 độ tham gia của người dùng. IOS SDK tương thích với tất cả thiết bị iOS (iPhone, iPod, iPad) chạy phiên bản iOS 6 trở lên.

 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.

 Important!

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

2. Bắt đầu nhanh

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

CocoaPods Carthage Static Framework Static Lib
  • Đả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
  • Add the following row to your Podfile:
    pod 'AppsFlyerFramework'
  • chạy pod install
  • Đả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
This framework is required to collect the IDFA from devices.
Without IDFA you cannot track Facebook Ads, Twitter, Google ads and other networks.
iAd.framework
Khung này là cần thiết để theo dõi 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

Mở tệp tin AppDelegate.m trong ứng dụng của bạn và nhập SDK của AppsFlyer:

Swift Objective-C
nhập AppsFlyerLib

3. Khởi tạo SDK

Initialize the SDK in the didFinishLaunchingWithOptions method with your app ID taken from iTunes Connect and your AppsFlyer dev key

Note that you need to set the app ID here with digits only, without the "id" prefix.

Swift Objective-C
AppsFlyerTracker.shared().appsFlyerDevKey = "<your-appsflyer-dev-key>";
AppsFlyerTracker.shared().appleAppID = "123456789"
AppsFlyerTracker.shared().delegate = self
#ifdef 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 :
Swift Objective-C
func applicationDidBecomeActive(application: UIApplication) { 
                    // Track Installs, updates & sessions(app opens) (You must include this API to enable tracking) 
                   AppsFlyerTracker.shared().trackAppLaunch() 
                   // your other code here.... }

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

Việc theo dõi 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.

An in-app event name must not be longer than 45 characters. Event names with more than 45 characters do not appear in the dashboard, but only in the raw Data, Pull and Push APIs.

Ví dụ: Sự kiện Trong Ứng dụng Cấp độ Đạt được

Swift Objective-C
AppsFlyerTracker.shared().trackEvent(AFEventLevelAchieved, withValues: [ 
AFEventParamLevel: 9,
AFEventParamScore : 100
]);

Điều này tạo ra một loại sự kiện af_level_achieved (sử dụng AFEventLevelAchieved không đổi) với những giá trị sự kiện dưới đây: {af_level: 9 , af_score: 100} 

 Lưu ý

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

5. Theo dõi Liên kết sâu (Deep Linking)

 Lời khuyên

Chúng tôi đặc biệt khuyên bạn nên tích hợp liên kết sâu trong ứng dụng của bạn.

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.


To report such launches, add the following code to the app delegate:

Swift Objective-C
// Báo cáo mở ứng dụng từ một Liên kết phổ dụng cho iOS 9 trở lên 
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
        AppsFlyerTracker.shared().continue(userActivity, restorationHandler: restorationHandler)
        return true
    }

    // Báo cáo mở ứng dụng từ một liên kết sâu từ ứng dụng không hỗ trợ Liên kết phổ dụng (Twitter) và cho iOS8 trở xuống 
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        AppsFlyerTracker.shared().handleOpen(url, sourceApplication: sourceApplication, withAnnotation: annotation)
        return true
    }

    // Báo cáo mở ứng dụng từ một liên kết sâu cho iOS 10 trở lên
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        AppsFlyerTracker.shared().handleOpen(url, options: options)
        return true
    }

6. Theo dõi doanh thu

Use the af_revenue (AFInAppEventParameterName.REVENUE) event parameter to count revenue as part of an in-app event. You can populate it with any numeric value, positive or negative.

 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.


Example: Revenue In-App Event

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

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:

Swift Objective-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:

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

 Lưu ý quan trọng

The customerUserID SHOULD be set before the trackAppLaunch. It is recommended to set your Customer User ID as soon as possible as it is only associated to events reported after its setup. Customer User ID can also be used to complete integrations with Analytics platforms such as Mixpanel and Swrve.

For more information about the Customer User ID, click here.

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

AppsFlyer cho phép bạn báo cáo một hoặc nhiều địa chỉ email người dùng, nếu bạn thu thập trong ứng dụng của bạn. Các giá trị email có thể được mã hóa theo các phương pháp mã hóa: Sha1, MD5 và đơn giản.

Ví dụ: Thu thập Email Người dùng

Swift Objective-C
AppsFlyerTracker.shared().setUserEmails( ["email1@domain.com", "email2@domain.com"], với: EmailCryptTypeSHA1)

 Lưu ý

AppsFlyer không giữ lại Thông tin nhận dạng cá nhân (PII), chẳng hạn như địa chỉ email và thông tin này không xuất hiện trong bất kỳ báo cáo nào. Thông tin này chỉ được thu thập nhằm mục đích gửi dữ liệu đến nguồn phương tiện truyền thô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 có AdSupport.framework trong ứng dụng.

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

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

Theo dõi 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:

Swift Objective-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ố theo dõi 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"
 }
}

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

AppsFlyer cho phép bạn theo dõi và phân bổ 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 Theo dõi Quảng cáo chéo, tại đây.

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

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. 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 thông tin chi tiết, xem mục Theo dõi mời người dùng tại đây.

Thiết lập Mã Tiền tệ

You can set a global currency code using the API below, in addition to specific currency codes that can be used as part of each in-app event sent to AppsFlyer. The global currency code is used when AFEventParamCurrency is not sent as part of an in-app event.

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:

Swift Objective-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.

AppsFlyer’s SDK can provide in‐app purchase server verification. To set receipt validation tracking you need to call the validateAndTrackInAppPurchase method inside the SKStoreKit’s completeTransaction: callback. This call automatically generates an af_purchase in‐app event.

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


This call has two callback blocks, one for ‘success’ and one for ‘failure’ (for any reason, including validation fail). On success, a dictionary is returned with the receipt validation data provided by Apple’s servers.  

 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

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

Anonymize

AppsFlyer provides you with a method to annonymize specific user identifiers in AppsFlyer analytics. This method complies with the latest privacy requirements and complies with Facebook data and privacy policies. Default is NO, meaning no anonymization is performed by default.

Use this API during the SDK Initialization to explicitly anonymize a user's installs, events and sessions:

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

Anonymizing users SEVERELY impacts 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

Để AppsFlyer đếm hai phiên riêng biệt, thời gian mặc định giữa mỗi phiên phải tối thiểu là 5 giây.  Một phiên bắt đầu khi người dùng mở ứng dụng.  Nếu bạn muốn cấu hình một khoảng thời gian khác giữa các phiên, hãy sử dụng API sau đây:

Swift Objective-C
AppsFlyerTracker.shared().minTimeBetweenSessions = <your_custom_time_in_seconds>

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:

Swift Objective-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.

Chọn không tham gia

In some extreme cases you might want to shut down all SDK tracking due to legal and privacy compliance. This can be achieved with the isStopTracking API. Once this API is invoked, our SDK will no longer communicate with our servers and stop functioning.

Swift Objective-C
AppsFlyerTracker.shared().isStopTracking = true

Collect Device Name

AppsFlyer SDK allows you to collect Device Name for your internal analysis. By default, this capability is turned off. To turn it on use the following API:

Swift Objective-C
AppsFlyerTracker.shared().shouldCollectDeviceName = false`

 Quan trọng

Device Name might be considered Personal Data in certain regions. Only collect this information if you know you are legally allowed to and have received the user's explicit consent to do so.

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 iOS for Objective-C or Swift

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

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.

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.

show
Bài viết này có hữu ích không?
8 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