转化数据
在本指南中,您将了解如何使用iOS SDK获取转化数据,以及使用示例。
开始之前
获取转化数据需要您首先对接SDK 。
在iOS SDK中获取转化数据
#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
is implemented in AppsFlyerLibDelegate
.
The onConversionDataSuccess
method is invoked whenever:
- 用户打开应用程序
- 用户将应用程序移至前台
When invoked, onConversionDataSuccess
returns a NSDictionary
(called installData
in the example) that contains attribution data for that install. installData
is cached the first time onConversionDataSuccess
is called and will be identical on consecutive calls.
onConversionDataFail
onConversionDataFail
is implemented in AppsFlyerLibDelegate
.
If for whatever reason the SDK fails to fetch the conversion data, onConversionDataFail
is invoked.
访问归因数据
You can get the conversion type by checking the value of af_status
in onConversionDataSuccess
's payload. It can be one of the following values:
Organic
Non-organic
举例
以下是一个实施的示例:
#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)
}
}
}
延迟深度链接(传统方法)
When the app is opened via deferred deep linking, onConversionDataSuccess
's payload returns deep linking data, as well as attribution data.
- 推荐的最佳做法是使用统一深度链接(UDL)实现深度链接
- For existing clients and reference, here is our legacy iOS deep linking guide, using
onConversionDataSuccess
.
已更新 3 months ago