Dữ liệu chuyển đổi

Trong hướng dẫn này, bạn sẽ tìm hiểu cách lấy dữ liệu chuyển đổi bằng SDK iOS, cũng như các ví dụ sử dụng.

Trước khi bạn bắt đầu

Để nhận dữ liệu chuyển đổi, trước tiên bạn phải tích hợp SDK.

Nhận dữ liệu chuyển đổi trong SDK iOS

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>

@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
    -(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Invoked when conversion data resolution succeeds
}
-(void)onConversionDataFail:(NSError *) error {
    // Invoked when conversion data resolution fails
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    // ..
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        // Invoked when conversion data resolution succeeds
    }

    func onConversionDataFail(_ error: Error!) {
        // Invoked when conversion data resolution fails
    }
}

onConversionDataSuccess

onConversionDataSuccess được triển khai trong AppsFlyerLibDelegate.
Phương thức onConversionDataSuccess được gọi ra vào bất cứ khi nào:

  • Người dùng mở ứng dụng
  • Người dùng chuyển ứng dụng sang chế độ chạy nổi

Khi được gọi ra, onConversionDataSuccess trả về một NSDictionary (được gọi là installData trong ví dụ) chứa dữ liệu phân bổ cho lượt cài đặt đó. installData được lưu vào bộ nhớ tạm lần đầu tiên onConversionDataSuccess được gọi ra và sẽ giống hệt nhau trong các lệnh gọi liên tiếp.

onConversionDataFail

onConversionDataFail được triển khai trong AppsFlyerLibDelegate.
Nếu vì bất kỳ lý do gì mà SDK không tìm nạp được dữ liệu chuyển đổi, onConversionDataFail is invoked.

Truy cập dữ liệu phân bổ

Bạn có thể nhận loại chuyển đổi bằng cách kiểm tra giá trị của af_status trong tải trọng của onConversionDataSuccess. Nó có thể là một trong các giá trị sau:

  • Organic
  • Non-organic

Ví dụ:

Sau đây là một ví dụ triển khai:

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>
#import <UserNotifications/UserNotifications.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
-(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Business logic for Non-organic install scenario is invoked
    id status = [installData objectForKey:@"af_status"];
    if([status isEqualToString:@"Non-organic"]) {
        id sourceID = [installData objectForKey:@"media_source"];
        id campaign = [installData objectForKey:@"campaign"];
        NSLog(@"This is a Non-organic install. Media source: %@  Campaign: %@",sourceID,campaign);
    }

    else if([status isEqualToString:@"Organic"]) {
        // Business logic for Organic install scenario is invoked
        NSLog(@"This is an Organic install.");
    }

}
-(void)onConversionDataFail:(NSError *) error {
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, AppsFlyerLibDelegate {
    // ...
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        if let status = installData["af_status"] as? String {
            if (status == "Non-organic") {
                // Business logic for Non-organic install scenario is invoked
                if let sourceID = installData["media_source"],
                let campaign = installData["campaign"] {
                    print("This is a Non-organic install. Media source: \(sourceID)  Campaign: \(campaign)")
                }
            }
            else {
                // Business logic for organic install scenario is invoked
            }
        }
    }

    func onConversionDataFail(_ error: Error!) {
        // Logic for when conversion data resolution fails
        if let err = error{
            print(err)
        }
    }
}

Liên kết Github

Deferred deep linking (phương thức cũ)

Khi ứng dụng được mở thông qua liên kết sâu bị trì hoãn, tải trọng của onConversionDataSuccesstrả về dữ liệu liên kết sâu cũng như dữ liệu phân bổ.