iOS Holistic Solution SDK
说明了如何使用 AppsFlyer 和 Firebase Remote Config A/B 测试与 2.6 版本及以上的 Appodeal iOS SDK 发送归因数据到 Stack Data Core。
目录
集成
- 将以下行添加到您的
Podfile
source 'https://cdn.cocoapods.org/'
source 'https://github.com/appodeal/CocoaPods.git'
install! 'cocoapods', :deterministic_uuids => false, :warn_for_multiple_pod_sources => false
use_frameworks!
def holistic_solution
pod 'HolisticSolutionSDK'
# If you doesn't use some of connectors you can
# integrate only explicit sub pods
#
# pod 'HolisticSolutionSDK/Core'
# pod 'HolisticSolutionSDK/Appodeal'
# pod 'HolisticSolutionSDK/AppsFlyer'
# pod 'HolisticSolutionSDK/Firebase'
# pod 'HolisticSolutionSDK/Facebook'
end
target 'App' do
project 'App.xcodeproj'
holistic_solution
end
-
运行
pod install
-
如果您的项目不包含 Swift 代码,请在项目根目录中创建一个空的 Swift 文件。
使用
Holistic Solution SDK 将初始化 AppsFlyer,获取 Firebase Remote Config 并将所需的所有数据同步到 Appodeal。通过 HSApp
类提供上述功能。通过调用带有 HSAppConfiguration
实例的配置方法将触发初始化。
对于HSAppConfiguration
,必须的参数是服务连接器和广告服务连接器数组。默认情况下,它们是AppsFlyer、FirebaseRemoteConfig和Appodeal。在这种情况下,超时指的是单个操作的默认超时:启动归因服务或获取远程配置。默认值是30秒。
我们强烈建议使用所有服务连接器。
- 将SDK伞头或模块导入到您的
AppDelegate
文件中。
Objective-C
#import <HolisticSolutionSDK/HolisticSolutionSDK.h>
Swift
import HolisticSolutionSDK
- 在应用程序完成启动事件时添加以下代码。
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// AppsFlyer
HSAppsFlyerConnector *appsFlyer = [[HSAppsFlyerConnector alloc] initWithDevKey:<#(NSString * _Nonnull)#>
appId:<#(NSString * _Nonnull)#>
keys:<#(NSArray<NSString *> * _Nonnull)#>];
// Firebase
HSFirebaseConnector *firebase = [[HSFirebaseConnector alloc] initWithKeys:<#(NSArray<NSString *> * _Nonnull)#>
defaults:<#(NSDictionary<NSString *,NSObject *> * _Nullable)#>
expirationDuration:<#(NSTimeInterval)#>];
// Facebook
HSFacebookConnector *facebook = [[HSFacebookConnector alloc] init];
// Appodeal
HSAppodealConnector *appodeal = [[HSAppodealConnector alloc] init];
// Configure HSApp
NSArray <id<HSService>> *services = @[appsFlyer, firebase, facebook];
HSAppConfiguration *configuration = [[HSAppConfiguration alloc] initWithServices:services
advertising:appodeal
timeout:<#(NSTimeInterval)#>];
[HSApp configureWithConfiguration:configuration completion:^(NSError *error) {
if (error) {
NSLog(@"%@", error.localizedDescription);
}
// Initialise Appodeal here
}];
return YES;
}
Swift
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// AppsFlyer
let appsFlyer = HSAppsFlyerConnector(devKey: <#T##String#>,
appId: <#T##String#>,
keys: <#T##[String]#>)
// Firebase
let firebase = HSFirebaseConnector(keys: <#T##[String]#>,
defaults: <#T##[String : NSObject]?#>,
expirationDuration: <#T##TimeInterval#>)
// Facebook
let facebook = HSFacebookConnector()
// Appodeal
let appodeal = HSAppodealConnector()
// Configure services
let services: [HSService] = [appsFlyer, firebase, facebook]
let configuration = HSAppConfiguration(services: services,
advertising: appodeal,
timeout: <#T##TimeInterval#>)
HSApp.configure(configuration: configuration) { error in
error.map { print($0.localizedDescription) }
// Initialize Appodeal here
}
return true
}
检查HSApp是否已初始化。
Objective-C
BOOL inititalised = HSApp.initialised;
Swift
let inititalised = HSApp.initialised
购买
全功能SDK允许通过AppsFlyer连接器验证和跟踪应用内购买。在success
和failure
块中返回的数据与AppsFlyer数据相同。查看文档。
Objective-C
[HSApp validateAndTrackInAppPurchaseWithProductId:<#(NSString * _Nonnull)#>
price:<#(NSString * _Nonnull)#>
currency:<#(NSString * _Nonnull)#>
transactionId:<#(NSString * _Nonnull)#>
additionalParameters:<#(NSDictionary * _Nonnull)#>
success:<#^(NSDictionary * _Nonnull)success#>
failure:<#^(NSError * _Nullable, id _Nullable)failure#>];
Swift
HSApp.validateAndTrackInAppPurchase(
productId: <#T##String#>,
price: <#T##String#>,
currency: <#T##String#>,
transactionId: <#T##String#>,
additionalParameters: <#T##[AnyHashable : Any]#>,
success: <#T##(([AnyHashable : Any]) -> Void)?##(([AnyHashable : Any]) -> Void)?##([AnyHashable : Any]) -> Void#>,
failure: <#T##((Error?, Any?) -> Void)?##((Error?, Any?) -> Void)?##(Error?, Any?) -> Void#>
)
事件
全功能SDK允许将事件发送到Firebase、AppsFlyer和Facebook分析系统。
Objective-C
[HSApp trackEvent:<#(NSString * _Nonnull)#>
customParameters:<#(NSDictionary<NSString *,id> * _Nullable)#>];
Swift
HSApp.trackEvent(<#T##eventName: String##String#>,
customParameters: <#T##[String : Any]?#>)
服务
以下是所有支持的服务接口的描述。
AppsFlyer
为AppsFlyer归因系统提供的连接器。在调用-[HSApp configureWithConfiguration:completion:]
之后,此连接器将启动AppsFlyer SDK
并设置转换监听器。
参数 | 描述 |
---|---|
devKey | 开发者密钥 |
appId | 应用程序标识符 |
keys | 连接器将要发送到Appodeal的转换数据键的数组。如果为空,则连接器将发送所有转换数据对象 |
要获取AppsFlyerTrackerDelegate
,请设置连接器的delegate
属性。
Objective-C
appsFlyer.delegate = self;
Swift
appsFlyer.delegate = self
Firebase
用于连接到 Firebase Remote Config 和 Firebase Analytics 系统的插件。在调用 -[HSApp configureWithConfiguration:completion:]
后,此插件将启动 Firebase App
(如果尚未启动)并尝试获取和激活配置。
参数 | 描述 |
---|---|
默认值 | 默认配置 |
过期时间 | 配置的过期时间 |
keys | 数组,包含连接器将发送到 Appodeal 的配置键。如果为空,则连接器将发送整个配置对象 |
用于连接到 Facebook Analytics 系统的插件。应启用 Facebook 分析自动初始化功能。项目还应包含 所需的所有键。
Appodeal
用于连接到 Appodeal SDK 的插件。在调用 -[HSApp configureWithConfiguration:completion:]
后,该插件仅从归因和产品测试系统中接收数据。**它不会初始化 Appodeal**