IOS-AppsFlyer收入集成统计

上次,应运营那边的需求在app内集成了AppsFlyer 收入统计,今天运行查看后台数据的时候,发现出了点问题,看了一下。

先来说一下 :AppsFlyer的集成吧

首先,第一步,当然是去appsflyer官网下载最新的SDK添加进来;

SDK 作为 framework static library 均可用。 


第二步:就是SDK的初始化了;

SDK 初始化 & 安装事件 (追踪最低要求-强制)  注意:这是追踪应用安装的最低要求。

需要在第一次启动在应用程序上进行 SDK 初始化。请保证在发送下面的跟踪事件之前进行 SDK 初始化。 

1. 为初始化 SDK,请添加以下代码至您的 “didFinishLaunchingWithOptions” 功能:

//使用您自己的Dev_Key替代[Dev_Key] (进入您的AppsFlyer账户控制面板中获取,
“Settings” >> “Integrate the SDK into...“ )

[AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"[Dev_Key]";[AppsFlyerTracker sharedTracker].appleAppID = @"REPLACE THIS WITH YOUR App_ID";

2. 添加下列代码至您在“applicationDidBecomeActive” 功能的 AppDelegate.m 源文件中:

#import "AppsFlyerTracker.h"-(void)applicationDidBecomeActive:(UIApplication *)application{

// Track Installs, updates & sessions(app opens) (You must include this API to enabletracking)

[[AppsFlyerTracker sharedTracker] trackAppLaunch];} 


第三步:当然也可以到这里就完了,因为剩下的功能都是可选的,收入统计集成需要完成传值操作:

这是官网文档的解释:

追踪应用内事件可以帮助您监测并分析忠实用户如何发现您的应用,并将其归因至特定的活动/媒体源中。如果您希望追踪 ROI(Return on Investment) LTV(Lifetime Value),我们建议您花些时间对事件进行定义。

语法:
- (void) trackEvent:(NSString *)eventName withValues:(NSDictionary*)values

eventName 可为任何字符串。您可在附录 A 中查看推荐应用名称列表.values 为包含富应用事件的事件参数。您可在附录 A 中查看推荐参数列表。

将收益(revenue)作为富应用内事件一部分:使用“af_revenue(AFEventParamRevenue 常数) 事件参数将收益计算作为一项应用内事件。您可以添加任何数值,正值或负值。注意“af_price” (AFEventParamPrice )不同于“af_revenue”,“af_price”将不被计算为收益(revenue),其只是不影响收益和 LTV 监测的描述参数中的一个。

示例 1: 等级事件

[[AppsFlyerTracker sharedTracker] trackEvent: AFEventLevelAchieved withValues:@{AFEventParamLevel: @9,
AFEventParamScore : @100 }];

该事件将被记录为带有{af_level: 9 , af_score: 100}值的 “af_level_achieved” 事件。


示例 2: 购买事件

[[AppsFlyerTracker sharedTracker] trackEvent:AFEventPurchase withValues: @{AFEventParamContentId:@"1234567",
AFEventParamContentType : @"category_a",
AFEventParamRevenue: @200,

AFEventParamCurrency:@"USD"}];

该事件将被记录为带有{af_content_id: “1234567” , af_content_type: “category_a”, af_revenue: 200,af_currency: “USD”}值的 “af_purchase” 的事件。

以上购买事件含$200 收益,该金额将在控制面板中显示。 

其实,简单来说就2行代码:

在你所有购买或者订阅只要是花钱并且成功扣费的地方加入下面这个代码:

NSMutableDictionary *productDic = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] objectForKey:@"productDic"]];
            
            AppsFlyerTracker *af=[AppsFlyerTracker sharedTracker];
            
            af.currencyCode = @"USD";//全球货币代码可以被使用
            
            [af trackEvent:AFEventPurchase withValues: @{AFEventParamContentId:[productDic objectForKey:@"productIdentifier"],
                                                         AFEventParamCurrency:@"USD", //不作为应用内事件一部分发送时
                                                         AFEventParamRevenue:[productDic objectForKey:@"price"]}];
用户在每次购买完成的时候, AppsFlyer会把你的产品ID 和 货币单位 还有Apple服务器返回给你的价格Price传到后台进行统计;

很遗憾的是,今天运行那边给我看了一下后台收集的数据,貌似有点问题,再次查看了一下文档,发现了问题所在,因为产品以前只有英文版,所以想一直给后台传的“USD”即美元货币。这种情况如果产品的价格Price每次都是从自己的服务器获取的价格的话,就不会出现这种问题,但是考虑到以后可能会添加多语种,会开辟中文,繁体等版本。所以如果每次穿的货币单位不一样的时候,后台虽然说可以正确统计,但是对于管理后台的人而言,计算起来是超级麻烦的,所以就希望程序里能处理,每次都给后台传同一个货币值,这样子后台人员,只需要查看前面的价格数据,完全不用管后面的货币单位,更不用对传上去的price进行货币转换。


第四步:高级整合;(也是可选部分)

设置货币代码(可选)

除了特定的货币金额代码外,您可以使用以下 API 获取全球货币代码。

“af_currency” (AFEventParamCurrency)不作为应用内事件一部分发送时,全球货币代码可以被使用。

USD 为默认值。请在此查找可接受的 ISO 货币代码。使用以下 API 来设定货币代码:

[[AppsFlyerTracker sharedTracker].currencyCode = @"USD"]; 

哈哈,到这里基本上就完了,当然我看文档后面还有关于InApp购买的收据验证等东西,暂时还用不到,留着以后用的时候再研究吧。


你可能感兴趣的:(名文收藏,IOS开发)