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)
}
}
}
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 onConversionDataSuccess
trả về dữ liệu liên kết sâu cũng như dữ liệu phân bổ.
- Phương thức hay nhất được đề xuất là triển khai liên kết sâu với Liên kết Sâu Hợp nhất (UDL)
- Đối với khách hàng hiện có và để tham khảo, đây là hướng dẫn liên kết sâu iOS cũ của chúng tôi, sử dụng
onConversionDataSuccess
.
Đã cập nhật 4 tháng trước