logly lift 移动 SDK
概要
版本: 0.9.12.2
- iOS SDK: https://github.com/logly/LiftSDK-iOS
- Android SDK: https://github.com/logly/LiftSDK-Android
此 logly lift Mobile SDK 是一个用于 iOS 和 Android 移动应用程序的 SDK,旨在使用 logly 的 lift 推荐系统。
要使用此 SDK 的 lift 推荐系统,请按照以下步骤进行(注意:您必须是 logly lift 系统的注册用户。)
1. 将 SDK 集成到应用程序中 有两种方法:一种是使用 SDK 内的简单 widget 进行快速创建,另一种是使用 SDK 调用 API 并自行处理和显示结果。
2. 将页面数据注册到 lift 系统中 您需要将预制的页面数据注册到 lift 系统中。这可以通过将 json 文件上传到 AWS S3 来完成。注意:这是应用程序外部的操作(参见:“页面数据注册”。
3. 从应用程序访问 lift 系统以获取推荐结果 使用 SDK 的 widget(或 API)从 lift 系统获取页面对应的推荐结果。
页面详情
lift 系统按页面单位执行推荐,因此您需要在移动应用程序内创建模拟页面,并获取对其内容的推荐结果。
使用 MDL(Mobile Deep Link)作为关键字的 URI 来识别页面。这是一个用于模拟页面识别的链接,应用程序需要确保能够打开此链接。当然,如果实际的页面存在于网络上,也可以使用该 URL(在这种情况下,也可以在浏览器等中打开链接)。
所需系统版本
- iOS: 8.1 以上
- Android: SDK 16(Android 4.1.0)以上
安装: iOS
安装iOS版SDK的库需要使用cocoapods。请将以下行《use_frameworks!
》和《pod “LoglyLift”
`》添加到应用程序的Podfile中。https://cocoapods.org.cn/
use_frameworks!
...
target ...
pod “LoglyLift”
然后从控制台执行以下命令:
pod install
安装: Android
要安装Android版的SDK库,请使用jCenter的maven仓库。https://jcenter.bintray.com/ 将以下内容添加到应用程序的build.gradle中的dependencies部分。
dependencies {
compile 'jp.co.logly:lift-sdk:0.9.12.2'
}
如果AndroidManifest中没有网络访问设置,请在app/AndroidManifest.xml中添加以下内容
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
SDK的内容
此移动SDK包括低级别的API客户端部分和简单的推荐显示widget(View)。此widget在内部调用API并将结果显示在widget上,并访问(用于正确测量的)信标和跟踪URL。
SDK中还包括使用widget的示例应用。SDK用户可以根据此示例应用进行集成。或者,SDK用户可以使用API客户端创建自定义widget。
○ 简单 widget的用法 : iOS
- 将LGLiftWidget作为UIView的子类在storybord / xib(或代码)中配置屏幕
- 从该视图的ViewController#viewDidLoad()等方法中,通过requestByURL()请求该LGLiftWidget开始。实际上,访问将在另一个线程等中执行,该方法将立即返回。
- 建议的显示数量由widget的大小决定。一个推荐单元格的大小是300x72(边距为2。剩余的宽度将被平均分配)、边距为2。因此,可以根据此标准进行更改。(注:最大数量可以在Lift控制台中设置)
objective-c
[self.liftWidget requestByURL:detail[@"url"]
adspotId:@(3777016)
widgetId:@(1684)
ref:@"http://blog.logly.co.jp/"];
swift
liftWidget.requestByURL( detail["url"],
adspotId:NSNumber(longLong: 3777016),
widgetId:NSNumber(int: 1684),
ref:"http://blog.logly.co.jp/")
○ シンプル widgetの使い方 : Android
- 在布局资源或代码中配置jp.co.logly.Lift.WidgetView到屏幕上
- 从Activity/Fragment的onCreateView()等处请求WidgetView启动requestByURL()。实际访问将在其他线程等中进行,此方法会立即返回。
- 推荐的显示数量取决于widget的大小。一个推荐单元的大小是300x72,因此以这个为单位进行更改会更好。(注意:最大数量也可在Lift控制台设置)
liftWidget.requestByURL(mItem.url, 3777016, 1684, "http://blog.logly.co.jp/", 1);
requestByURL的参数
- url: 密钥页面URL(MDL)
- adspotID: Logly发出的adspotID
- widgetID: Logly发出的widgetID
- ref: 引用URL(通常在移动版中不需要)
Click回调 : iOS
- swift
liftWidget.onWigetItemClickCallback = {(widget, url, item) -> Bool in
// do something useful.
return true; // we handled click. do not need to open in browser.
}
- Objective-C
self.liftWidget.onWigetItemClickCallback = ^(LGLiftWidget *widget, NSString *url, LGInlineResponse200Items *item) {
// do something useful.
return YES; // we handled click. do not need to open in browser.
};
注册此onWigetItemClickCallback以在推荐的条目被点击时调用此回调。如果此回调函数返回true,则widget将停止后续处理。(在浏览器中不打开URL)
Click回调 : Android
liftWidget.mOnWigetItemClickListener = new WidgetView.OnWigetItemClickListener() {
@Override
public boolean onItemClick(WidgetView widget, String url, InlineResponse200Items item) {
/* do something useful. */
return true; /* we handled click. do not need to open in browser. */
}
};
注册此mOnWigetItemClickListener为回调监听器,在推荐的条目被点击时调用此监听器。如果此监听器返回true,则widget将停止后续处理。(在浏览器中不打开URL)
○ 关于样例应用
iOS (Swift or Objective-C)版本样例应用的执行方法
cd examples/LiftSample-{swift,objc}
pod install
open LiftSample-{swift,objc}.xcworkspace
- 打开Xcode以运行
Android版本样例应用的执行方法
- 在Android Studio中打开SDK目录
- 运行
○ SDK: API客户端
使用SDK的API客户端直接访问lift API,以获取推荐结果,可以在自定义视图等进行显示。简单的小部件内部也使用这个API客户端。SDK的源代码也已公开,可以参考小部件的代码。有关API客户端的规范,请参阅另一文件的API文档API.html。
注意:在使用API客户端的情况下,为了测量,必须在视图可见时调用beaconUrl,在点击时调用ldUrl,请注意。
页面数据的注册
在lift系统中,预先将页面数据注册到系统中,并基于这些页面数据进行推荐(中间)结果的计算。注册是通过将JSON格式数据文件上传到Amazon AWS S3来自动处理的。
注意:上传的JSON文件会定期处理,如果注册成功则立即被删除。如果一段时间后文件消失,那么可以认为已成功处理。如果文件仍然存在,则可能发生了某种错误。在这种情况下,上传的数据根本不会被注册。请重新上传修正后的文件或联系logly的支持。
准备工作:从logly提前获取访问Amazon AWS S3时的认证信息、需要上传的bucket名称和文件夹名称。
JSON文件格式
文件名:"任意名.json"
示例:
{
"user": "user1",
"items": [{
"url": "logly-liftmobilesdk-sample://jp.co.logly.liftmobilesdk.sample/page/1",
"title": "NYタイムズがソーシャル・インフルエンサーを活用、ブランドコンテンツのクリエイティブのためにマーケティング会社を買収",
"text": "NYタイムズは今月上旬から、外部のメディアサイトのネイティブ広告を利用し始めています。同社は年初からネイティブ広告の提供を開始していたので、ネイティブ広告メディアとして今後の展開に注目していました。そのNYタイムズが立場を変えて、「広告主」として他サイトのネイティブ広告にコンテンツを出稿したのです。そこで、どのようなコンテンツを配信しているかを見ていきましょう。 NYタイムズが利用したネイティブ広告提供メディアは「Mashable」です。Mashableはインターネット分野をカバーしたオンライン・ニュー",
"image_size": "128x128",
"image_url": "http://blog.logly.co.jp/system/attachments/images/000/016/896/large_thumb/1.png",
"pubdate": "2015-11-10T02:00:00Z",
"category": "blog"
}]
}
内容(顶级):
- user : 请输入logly提前通知的用户ID。
- items : 页面数据的数组
内容(页面数据)
- url : (必填) 关键MDL。如果实际存在于web上,也可以使用URL。
- title : (必填) 标题
- summary : (可选) 摘要
- text : (必填) 文本内容
- image_size : (必填) 缩略图图像的大小。例如:100x200
- image_url : (必填) 缩略图图像的URL。如果可能会与iOS9中的ATS冲突,请将图像放在HTTPS上。
- pubdate : (可选) 页面发布日期和时间。ISO 8601格式。例如:"2015-11-10T03:00:00Z"
更新和删除方法
与注册相同,可以使用相同的方式执行相同页面的更新或删除。在更新时,将相同的MDL使用在“url”字段中,并用新内容的其他数据描述,则会更新内容。在删除的情况下,将相同的MDL使用在“url”字段中,在其他所有字段中输入空数据,则会删除内容。(目前,使用title和text进行判断。如果两者都为空,则执行删除。)