开始使用 SDK
只需几分钟,就可以快速实施第一个优化方案!
本指南将演示如何使用 SDK来创建一个云眼优化方案的全过程。
1. 创建一个云眼账号
需要访问 云眼 并注册账号才能使用 SDK。
2. 创建一个全栈API 优化方案
在云眼 控制台 > 业务优化 中创建一个新的优化方案,优化方案名称要求唯一,因为需要在配置信息中和别的优化方案区别开来,然后平台选择 全栈API。
3. 编辑优化方案
点击 编辑 来配置第一个优化方案。
接下来,创建一个或多个优化版本,以及分配各版本流量,同样要求名称唯一。对于这个例子,将使用 default
和 treatment
:
最后,需要至少创建和指定一个目标事件,目标事件名称要求唯一。对于这个例子,将使用 my_conversion
:
4. 启动优化方案
启动优化方案:
5. 集成 SDK
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
SDK的集成安装请前往云眼 控制台 > 业务优化 > SDK下载与安装 查看详细指导。
6. 实例化一个Eyeofcloud对象
当成功集成SDK后,就可以在程序中实例化一个 Eyeofcloud对象 。实例化Eyeofcloud对象需要一个格式为JSON的配置信息数据文件,可以在 控制台 > 业务优化 > SDK下载与安装 中获取数据文件的下载链接。
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
url = 'https://cdn.eyeofcloud.com/json/12345.json'
import requests
datafile = requests.get(url).text
from eyeofcloud import eyeofcloud
eyeofcloud_client = eyeofcloud.Eyeofcloud(datafile)
如何使用Java SDK初始化一个Eyeofcloud实例的详细内容请参阅 初始化 部分。
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
require 'httparty'
require 'eyeofcloud'
url = 'https://cdn.eyeofcloud.com/json/12345.json'
datafile = HTTParty.get(url).body
eyeofcloud_client = Eyeofcloud::Project.new(datafile)
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
var url = 'https://cdn.eyeofcloud.com/json/12345.json';
var rp = require('request-promise');
var options = {uri: url, json: true};
var eyeofcloud = require('./');
var eoc;
rp(options).then(function(datafile) { eoc = eyeofcloud.createInstance({datafile: datafile}) });
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
var eyeofcloudClientInstance;
var url = 'https://cdn.eyeofcloud.com/json/12345.json';
window.fetch(url, { mode: 'cors' })
.then((datafile) => {
eyeofcloudClientInstance = eyeofcloud.createInstance({ datafile: datafile.json() })
});
如何使用PHP SDK初始化一个Eyeofcloud实例的详细内容请参阅 初始化 部分。
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
var eyeofcloudClientInstance;
var url = 'https://cdn.eyeofcloud.com/json/12345.json';
window.fetch(url, { mode: 'cors' })
.then((datafile) => {
eyeofcloudClientInstance = eyeofcloud.createInstance({ datafile: datafile.json() })
});
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
创建一个EyeofcloudManager实例
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EyeofcloudManager eyeofcloudManager = EyeofcloudManager.builder("project_id")
.withEventHandlerDispatchInterval(30, TimeUnit.SECONDS)
.withDataFileDownloadInterval(30, TimeUnit.SECONDS)
.build();
}
通过EyeofcloudManager创建一个EyeofcloudClient实例
eyeofcloudManager.initialize(this, new EyeofcloudStartListener() {
@Override
public void onStart(EyeofcloudClient eyeofcloud) {
//Activate code (step #7)
//Track code (step #8)
}
});
现在,可以参照以下代码示例来创建一个Eyeofcloud实例,详细内容请参阅 初始化 部分。
以下代码示例,将在 AppDelegate.m
/AppDelegate.swift
初始化Eyeofcloud实例。首先,引入SDK:
Objective-C:
#import <EyeofcloudSDKiOS/EyeofcloudSDKiOS.h>
Swift:
import EyeofcloudSDKiOS
然后,在 didFinishLaunchingWithOptions
方法内初始化Eyeofcloud实例:
Objective-C:
EOCManager *manager = [EOCManager init:^(EOCManagerBuilder * _Nullable builder) {
builder.projectId = @"project_id";
}];
[manager initializeWithCallback:^(NSError * _Nullable error, EOCClient * _Nullable client) {
//Activate code (step #7)
//Track code (step #8)
}];
Swift:
let eyeofcloudManager = EOCManager.init {(builder) in
builder!.projectId = "project_id"
}
eyeofcloudManager?.initialize({ (error, client) in
//Activate code (step #7)
//Track code (step #8)
})
Now you can create an Eyeofcloud client by providing the datafile to the constructor. Use your HTTP library of choice to fetch the datafile. Read more about initializing the client.
Objective-C:
#import <EyeofcloudSDKTVOS/EyeofcloudSDKTVOS.h>
Eyeofcloud *eyeofcloud = [Eyeofcloud initWithBuilderBlock:^(EOCBuilder *builder) {
builder.datafile = datafile;
}];
Swift:
import EyeofcloudSDKTVOS
let eyeofcloud: Eyeofcloud? = Eyeofcloud.initWithBuilderBlock({ (builder) in
builder!.datafile = datafile
})
7. 分流
使用Eyeofcloud对象调用activate
方法,可以随机地将受众分配到不同的优化版本中进行试验。activate方法将返回被抽中的优化版本的名称,并会向云眼发送一次PageView。
variation = eyeofcloud_client.activate(‘my_experiment’, ‘joe’)
variation = eyeofcloud_client.activate(‘my_experiment’, ‘jill’)
Variation variation = eyeofcloud.activate("my_experiment", "joe");
Variation variation = eyeofcloud.activate("my_experiment", "jill");
variation = eyeofcloud_client.activate(‘my_experiment’, ‘joe’)
variation = eyeofcloud_client.activate(‘my_experiment’, ‘jill’)
var variation1 = eyeofcloud_client.activate(‘my_experiment’, ‘joe’);
var variation2 = eyeofcloud_client.activate(‘my_experiment’, ‘jill’);
var variation1 = eyeofcloudClientInstance.activate(‘my_experiment’, ‘joe’);
var variation2 = eyeofcloudClientInstance.activate(‘my_experiment’, ‘jill’);
$variationKey1 = $eyeofcloudClient->activate('my_experiment', 'joe');
$variationKey2 = $eyeofcloudClient->activate('my_experiment', 'jill');
var variation1 = eyeofcloudClientInstance.activate(‘my_experiment’, ‘joe’);
var variation2 = eyeofcloudClientInstance.activate(‘my_experiment’, ‘jill’);
// Logged in user
Variation variation = eyeofcloud.activate("my_experiment", "currentUser");
// Anonymous device id
Variation variation = eyeofcloud.activate("my_experiment", UUID.randomUUID().toString());
Objective-C:
EOCVariation *variation = [client activate:@"my_experiment" userId:@"currentUser"];
Swift:
let variation = client?.activate("my_experiment", userId: "currentUser")
8. 跟踪目标事件
在第3步中,创建并制定了一个目标事件 my_conversion
,在程序中使用Eyeofcloud对象调用 track
方法将会触发一个目标事件,并向云眼发送一个目标转化记录:
eyeofcloud_client.track(‘my_conversion’, ‘joe’)
eyeofcloud.track("my_conversion", "joe")
eyeofcloud_client.track(‘my_conversion’, ‘joe’)
eyeofcloud_client.track(‘my_conversion’, ‘joe’);
$eyeofcloudClient->track('my_conversion', 'joe');
eyeofcloudClientInstance.track(‘my_conversion’, ‘joe’);
eyeofcloudClientInstance.track(‘my_conversion’, ‘joe’);
eyeofcloud.track("my_conversion", "currentUser");
Objective-C:
[client track:@"my_conversion" userId:@"currentUser"];
Swift:
client?.track("my_conversion", userId: "currentUser")
9. 查看优化结果
按表查看优化结果:
按图查看优化结果:
随着优化方案获得更多流量,云眼的统计引擎将确定是否有胜出的优化版本。
10. 下一步
下一步,建议先查看以下内容: