Tamber 0.1.3

Tamber 0.1.3

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2020年6月

Alexi Robbins 维护。



Tamber 0.1.3

  • 作者:
  • Alexi Robbins

Tamber iOS SDK

为开发者提供的推荐引擎,如同 π 一样简单。几秒钟内轻松构建快速、精确的托管推荐引擎。

Tamber iOS SDK 可以轻易地在您的 iOS 应用中追踪事件(用户-商品交互)并为您的用户获取推荐。

获取免费 API 密钥 开始使用。

要求

我们的SDK兼容iOS 8.0及以上。构建源文件需要Xcode 8.0+。

文档

此ReadMe涵盖了使用Tamber iOS SDK的基本知识。请查看SDK文档以全面了解类和方法,以及API参考以获取Tamber文档的完整信息。

安装

使用CocoaPods安装Tamber。如果您项目中还没有Podfile,请在项目目录下执行$ cd并运行$ pod init

将以下行添加到您的Podfile中

pod 'Tamber'

然后,运行以下命令

$ pod install

使用方法

如果您是初学者,查看快速入门指南以获取设置说明。

要开始跟踪事件,设置可发布的项目密钥。

#import "AppDelegate.h"
@import Tamber;

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [Tamber setPublishableProjectKey:@"your_project_key"];
    // do any other necessary launch configuration
    return YES;
}
@end

设置用户

将用户设置在您从后端加载用户的唯一ID的地方,或者您从那里加载用户ID的地方。

[Tamber setUser:@"user_id"];

跟踪事件

当用户与您的应用中的项目交互时,将事件流传输到Tamber项目。

TMBItem *item = [TMBItem itemWithId:@"item_id"
    properties:@{
        @"type":@"book",
        @"title":@"The Moon is a Harsh Mistress",
        @"img_url":@"https://img.domain.com/book/The_Moon_is_a_Harsh Mistress.jpg", 
        @"stock":[NSNumber numberWithInteger:34]
    }
    tags:@[@"sci-fi", @"bestseller"]
];

TMBEventParams *params = [TMBEventParams eventWithItem:item behavior:@"like" context:@{@"page": @"homepage", @"section": @"featured"}];
[[Tamber client] trackEvent:params responseCompletion:^(TMBEventResponse *object, NSHTTPURLResponse *response, NSError *error) {
    if(error){
        // Handle error
    } else {
        object.events[0] // Event tracked
        object.recs // Returns updated recommendations if params.getRecs is set - [params setGetRecs:<TMBDiscoverParams>]
    }
}];

您也可以设置项目仅为项目的唯一ID,但这将限制您引擎的功能。

TMBEventParams *params = [TMBEventParams eventWithItem:@"item_id" behavior:@"like"];

获取推荐

在设置了一些事件并创建了您的引擎后,您可以开始将用户推荐引入您的应用。

要为显示在主页或任何推荐部分上的用户获取推荐

TMBDiscoverParams *params = [TMBDiscoverParams discoverRecommended:[NSNumber numberWithInt:8]];
[[Tamber client] discoverNext:params responseCompletion:^(TMBDiscoverResponse *object, NSHTTPURLResponse *response, NSError *error) {
    if(error){
        // Handle error
    } else {
        for(TMBDiscovery *discovery in object.discoveries){
            discovery.item // Recommended item id
            discovery.score // Recommendation score (relative to other results, not a predicted rating)
        }
    }
}];

为获取项目页面上的“下一个”部分的相似项目

TMBDiscoverParams *params = [TMBDiscoverParams discoverNext:@"item_id" number:[NSNumber numberWithInt:10]];
[[Tamber client] discoverNext:params responseCompletion:^(TMBDiscoverResponse *object, NSHTTPURLResponse *response, NSError *error) {
    if(error){
        // Handle error
    } else {
        for(TMBDiscovery *discovery in object.discoveries){
            discovery.item // Recommended item id
            discovery.score // Recommendation score (relative to other results, not a predicted rating)
        }
    }
}];

如果您正在设置商品属性,您可以将这些属性包含在推荐响应中以便简化数据处理。例如,您可能有标题图片价格属性,您可以使用这些属性将商品展示给用户,而无需对每个推荐发出额外请求。

TMBDiscoverParams *params = [TMBDiscoverParams alloc] discoverNext:[NSNumber numberWithInt:50] getProperties:true];
[[Tamber client] discoverNext:params responseCompletion:^(TMBDiscoverResponse *object, NSHTTPURLResponse *response, NSError *error) {
    if(error){
        // Handle error
    } else {
        for(TMBDiscovery *discovery in object.discoveries){
            discovery.item // Recommended item id
            discovery.score // Recommendation score (relative to other results, not a predicted rating)
            discovery.properties // Dictionary of item properties
        }
    }
}];

匿名 / 未登录用户

如果您的应用允许用户在创建账户之前与内容进行交互,或者他们处于注销状态,但您有一些唯一标识符(如设备ID),您可以为此ID设置用户并将其作为正常事件进行跟踪。然后,当用户创建账户或登录时,您可以合并匿名用户和登录用户。

// At app launch / wherever appropriate in your code 
[Tamber setUser:@"anonymous-device-id"];

// On signup/login:
NSString *toUser = @"user-id"; // The id of the user to which you want to merge.
[[Tamber client] mergeToUser:toUser responseCompletion:^(TMBUser *object, NSHTTPURLResponse *response, NSError *error) {
    if(error){
        // Handle error. Note that mergeToUser internally sets the default user to the `toUser`.
    } else {
       object.events // Array of merged user events (`TMBEvent` objects)
       object.metadata // Dictionary of the merged user metadata. Note that field-value conflicts default to the `toUser`.
    }
}];

测试推荐

我们建议在测试期间创建测试用户。为此,只需调用makeTestUser方法。

#define DEV_MODE true

[Tamber setUser:@"testing-user-id"];
if(DEV_MODE){
    [Tamber makeTestUser];
}