其他 SDK 集成文档

Java SDK

官网下载 Java SDK jar包 最新版。

代码依赖 org.json,请导入json Jar包文件。

使用maven可以选择加入dependency来导入SDK。

<dependency>
<groupId>com.appadhoc</groupId>
<artifactId>adhoc-java</artifactId>
<version>0.0.9</version>
</dependency>

代码集成的步骤包括初始化,获取试验变量,以及汇报优化指标。示例代码如下:

/* 初始化 AppAdhoc SDK */
AdhocSdk.getInstance().init("ADHOC_50000000000000ad80c23462");
/* 使用 flags 来控制 implement A/B versions */
/* client_id 对应一个独立用户,建议使用 UUID 格式 */
/* 可以使用 AdhocSdk.getInstance().generateClientId() 来生成一个随机的 UUID */
ExperimentFlags flag = AdhocSdk.getInstance().getExperimentFlags(client_id);
if(flag.getBooleanFlag("btn_color",false)){
   // todo
}else{
   // todo
}
/* 汇报优化指标的改变 */
AdhocSdk.getInstance().incrementStat(cliend_id, "payment", payment);

Node.js Module

官网下载 AppAdhoc Node module 最新版。

或使用npm下载AppAdhoc 库。

npm install appadhoc

代码依赖 http module。请在 package.json 的 devDependencies 里加上 "http": "*"

代码集成的步骤包括初始化,获取试验变量,以及汇报优化指标。示例代码如下:

/* 初始化 AppAdhoc module */
var adhoc = require("appadhoc");
adhoc.init("ADHOC_50000000000000ad80c23462");

/* 使用 flags 来控制 implement A/B versions */
/* client_id 对应一个独立用户,建议使用 UUID 格式 */
/* 可以使用 adhoc.generateClientId() 来生成一个随机的 UUID */
adhoc.getExperimentFlags(client_id, function(flags) {
  response.setBgColor(flags.bgColor);
});

/* 汇报优化指标的改变 */
adhoc.incrementStat(client_id, "payment", payment);

PHP Library

官网下载 AppAdhoc PHP Library 最新版,解压缩得到 adhoc.php。

代码依赖 Curl 和 JSON 的 PHP extension。

代码集成的步骤包括初始化,获取试验变量,以及汇报优化指标。示例代码如下:

/* 初始化 AppAdhoc library */
date_default_timezone_set('Asia/Shanghai');
$adhoc = new Adhoc\Adhoc();
$adhoc->init("ADHOC_556572874a9252e4767b23c6");

/* 使用 experiment flags 来控制 implement A/B versions */
/* $client_id 对应一个独立用户,建议使用 UUID 格式 */
/* 可以使用 $adhoc->generateClientId() 来生成一个随机的 UUID */
$flags = $adhoc->getExperimentFlags($client_id);
if ($flags["newVersion"]) {
    yourExperimentCode();
}

/* 汇报优化指标的改变 */
$payment = getYourClientPayment();
$adhoc->incrementStat($client_id, "payment", $payment);

Meteor Package

如果您正在使用Meteor开发app,我们为您提供了meteor package来使用我们的产品进行A/B测试。

在atmospherejs的package库中,我们发布了adhoc-clientadhoc-server,分别用于客户端和服务端的测试。 您可以通过在终端输入meteor add adhoc:adhoc-clientmeteor add adhoc:adhoc-server将package加载到您的开发项目中。

代码集成的步骤包括初始化,获取试验变量,以及汇报优化指标。我们提供了一个client端package集成的demo以及对应的app,示例代码如下:

/* 初始化 AppAdhoc*/
adhoc.init("ADHOC_50000000000000ad80c23462", clientId);
/*第一个参数对应您在创建app时生成的appKey*/
/* clientId对应一个独立用户, 需要您的app中存在生成client id的方法,如果没有可以自定义一个方法,client id建议使用 UUID 格式 */

/*获取flags, 所有模块会以json形式传入回调函数的参数中*/
adhoc.getExperimentFlags(callback);
/* 使用 experiment flags 来控制 A/B versions。在demo中将flag btn_color传入变量caseValue,来控制显示不同的按钮设计方案*/
{{#if caseValue}}
   {{>showCaseB}}
{{else}}
   {{>showCaseA}}
{{/if}}

/* 汇报优化指标的改变 */
adhoc.incrementStat("action_btn_clicks", 1);

如果您想更加详细的了解adhoc-client的集成过程,可以阅读atmospherejsgithub上相关的readme文件。

关于adhoc-server的集成过程,您可以参考本页面node.js部分的说明, 需要注意的是您不需要使用var adhoc = require(...);这一行代码

Python SDK

AppAdhoc 的 Python SDK 依赖于 Requests。依赖和 SDK 都可以通过 pip 安装:

pip install requests
pip install git+https://github.com/appadhoc/adhoc_python_sdk.git

示例代码如下:

from adhoc import AdhocTracker

# 初始化 SDK,其中 "app_key" 换成从后台得到的 app key。
tracker = AdhocTracker("app_key")

# 获取试验变量,其中 client_id 是用户唯一标识,可以是用户 ID 等。
flags = tracker.get_flags("client_id")
print(flags)

# 上报对应的统计数据
tracker.inc_stat("client_id", "stat1", 2.0)

注意:获取试验变量和上报统计数据都是通过网络,所以有可能失败或阻塞整个线程。如果有需要可以将调用代码包装在异步请求或线程池中以避免阻塞整个应用。

results matching ""

    No results matching ""