更多详情请访问 http://usedopamine.com
在 DopamineKit-iOS-HelloWorld 仓库 中包括了一个简单的 "待办事项" iOS 应用示例,以演示 DopamineKit 在代码中的使用。
在 DopamineKit-iOS-HelloWorld 仓库 中包含了一个简单的 "待办事项" iOS 应用,以演示 DopamineKit 可如何在您的代码中使用。
首先确保您有一个 DopamineProperties.plist 文件,其中包含您的 API 密钥和其他凭证。
转到您的项目 App Target
> 构建阶段
> 复制 Bundle 资源
,然后拖放到 DopamineProperties.plist,并确保勾选了 "如有需要则复制" 复选框。
将以下行添加到您的 CocoaPod Podfile
```
pod 'DopamineKit'
```
// Swift
import DopamineKit
// Objective-C
#import <DopamineKit/DopamineKit-Swift.h>
reinforce()
和 track()
函数。这些函数应该作为对任何 动作 的增强或跟踪的响应添加。reinforce()
。// Swift
DopamineKit.reinforce("some_action", completion: {
reinforcement in
switch(reinforcement){
// Use any rewarding UI components that fit your app's theme,
// for example showInspirationalQuote() or showFunnyMeme().
case "thumbsUp" :
// Show a thumbs up sticker!
case "stars" :
// Show stars falling in the background!
default:
// Show nothing! This is called a neutral response,
// and builds up the good feelings for the next surprise!
return
}
})
// Objective-C
[DopamineKit reinforce:@"some_action" metaData:nil completion:^(NSString* reinforcement){
if([reinforcement isEqualToString:@"quote"]){
// show a famous, positive quote
} else if([reinforcement isEqualToString:@"meme"]){
// show a dank meme
} else{
// Show nothing! This is called a neutral response,
// and builds up the good feelings for the next surprise!
return;
}
}];
track()
函数用于跟踪其他用户操作。使用 track()
调用的信息将有助于 Dopamine更好地理解用户行为,并使您的优化和分析更加完善。track()
函数记录 "待办事项" 应用中的 applicationDidBecomeActive()
,或者在 "健身" 应用中记录 userCheckedDietHistory()
。让我们跟踪用户在 "健身" 应用中添加食品项目的情况。我们还将添加 metaData
字段中物品的卡路里,以收集更多关于用户参与度信息。
// Swift
let calories:Int = 400
DopamineKit.track("foodItemAdded", metaData: ["cals":calories])
// Objective-C
NSNumber* calories = [NSNumber numberWithInt:400];
[DopamineKit track:@"foodItemAdded" metaData:@{@"cals":calories} completion:^(NSString* s){}];
针对 track()
和 reinforce()
函数有额外的参数,用于从应用中收集丰富的信息并创建更优质的用户参与故事。
========
####跟踪调用
应使用跟踪调用记录并向DopamineAPI通信,以告知特定操作已由用户执行。这些调用中的每一个都将用于改进针对特定用户的强化模型。跟踪调用本身是异步和非阻塞的,并返回一个状态代码(成功时为200,其他均为错误代码),大部分情况下可以忽略。失败的跟踪调用不会返回错误,但会在NSLog中记录。
######通用语法
Dopamine.track(actionID, metaData)
######参数
actionID: String
- 是用户执行操作的唯一名称
metaData: [String:AnyObject]
- (可选)是要发送到API的任何附加数据
========
####强化调用
当用户执行了您希望变成“习惯”的特定操作时,应使用强化调用。强化调用将返回应调用的反馈函数名称,以告知、取悦或祝贺用户。强化函数的名称、反馈函数及其相应的配对必须通过联系我们进行配置。
######通用语法
Dopamine.reinforce(actionID, metaData, completion)
######参数
actionID: String
- 是用户执行操作的唯一名称
metaData: [String:AnyObject]
- (可选)是要发送到API的任何附加数据
completion: String -> ()
- 是一个闭包,它接收强化决策作为字符串
强化调用本身接受required参数actionID,以及一个尾随闭包,该闭包作为强化响应的完成函数。此闭包接收反馈函数名称作为字符串输入参数。
有关使用闭包的更多信息,请参阅Apple的文档。
========
####DopamineProperties.plist
DopamineProperties.plist
必须默认包含在您的app的主bundle中,或者可以通过设置DopamineAPI.testCredentialPath
来配置位置。此属性列表包含用于发出API有效调用所需的配置变量
appID: String
- 唯一标识您的应用
versionID: String
- 这是一个您选择的唯一标识符,标志着此实现在我们系统中是独特的。这可能像'revision2015Implementation'或'ClinicalTrial4'。您的versionID
是我们跟踪用户接触到什么强化以及如何优化它的依据。
inProduction: Bool
- 指示应用是在生产模式还是开发模式,当您对Dopamine的集成满意并准备推出时,请将此参数设置为true
。这将激活优化的强化并开始您的计费周期。当设置为false
时,您的应用将接收到模拟的强化,新用户将不会被注册到我们的系统中,并且不会发生计费。
productionSecret: String
- 生产模式的密钥
developmentSecret: String
- 开发模式的密钥