Optimizely&Visual网站优化工具是两个很酷的网站,允许用户执行简单的A/B测试.
他们做的最酷的事情之一是可视化DOM编辑.您可以直观地操作网页并离线保存更改.然后,在随机访问者页面视图中通过JS加载应用更改.
视觉编辑如何运作?
当我在我的网站上进行实验时,我希望能够找出当前访问者看到的测试和变体.我无法从Optimizely Javascript API中找到如何执行此操作.
我希望在我们将使用Angularjs的网站上使用Optimizely,但从我的理解,这将是困难的,因为Angularjs的整个目的是不操纵DOM,并且Optimizely通过操纵DOM来工作.
有没有人对如何使用这些工具的文件有任何指导?也许我可以创建指令来帮助工具工作的结构?
我有一个单页面的Web应用程序,它提供了一个多步骤的照片管理"向导",通过一个标签条分成几个不同的步骤(照片上传,样式,注释,发布).在切换步骤中,我将URL哈希设置为#publishing-step(或激活了哪个步骤).
如何设置Optimizely测试以在向导的各个离散步骤上运行?
浏览器永远不会离开页面,因此它只会获得一个window.load事件.它的DOM不会被废弃或重新生成,而只是在任何时候通过display: none或切换哪些页面元素是可见的block,所以我试图弄清楚的部分主要是关于我如何进行Optimizely测试设置本身 -如果一次性应用所有编辑,那就很好(并且可能是必要的).
不幸的是,这件事必须在IE9中工作,所以我不能用于history.pushState为每一步获得相当分散的URL.
我们现在正在使用GWO(Google网站优化工具).多变量和A/B测试正是我们所需要的,并且从显示用户变化的角度来看效果很好.但是,我们有几个问题让我想要使用不同的工具:
是否有像GWO这样的好工具可以与Google Analytics(我喜欢)一起使用?
更新:我们选择了Optimizely并且一直很高兴.但是,它可能很难处理,因为它对你来说有点太多了.您可以直接从他们的UI编辑您的网页,但这当然并不容易,甚至可能.特别是当涉及Javascript时.我们的UI经常在这个过程中搞砸了.我喜欢GWO的方法,因为开发人员将代码分开,营销人员可以用开发人员允许的变量填写这些部分.对我来说这是理想的,除了GWO,当然,实际上并不起作用.
Optimizely的竞争对手名为Visual Website Optimizer.看起来也很漂亮,但我上面描述了同样的问题.
是否有GWO有效?
javascript google-analytics google-website-optimizer multivariate-testing optimizely
在最新的Chrome更新之一中,Chrome团队添加了"无论如何"加载消息,提示用户批准在安全页面上加载不安全内容,以某种方式优化地找到了一种方法来"欺骗"chrome不要求问题而只是简单地使用黄色警告键加载内容,例如:https://www.optimizely.com/edit#url=http : //www.yahoo.com/
我似乎无法理解他们是如何做到的......有人理解吗?
谢谢
我在我们的网站上进行A/B测试,我做的大部分工作都是在一个JS文件中,在文件顶部加载之前,其他任何东西都被渲染,但是在jQuery加载之后,它有时会派上用场.
举一个非常简单的改变H1标签的例子,我通常会在头部注入一个样式来将H1不透明度设置为0,然后在DOMContentLoaded上,我会操纵H1内容,然后将不透明度设置为1.是为了避免在更改发生之前闪现旧内容 - 隐藏整个对象在眼睛上更优雅.
我已经开始研究MutationObserver API了.我之前在使用覆盖对话框中更改内容时使用过这个用户可以打开的内容,这似乎是一个非常酷的方法,我想知道是否有人设法使用MutationObserver来收听文件,因为它是第一次加载/在首次渲染之前和DOMContentLoaded之前解析并更改文档?
这种方法可以让我更改H1内容而不必隐藏它,更改它,然后显示它.
到目前为止,我已经尝试但失败了,刚刚结束了关于即将到来的突变事件的阅读,并想知道我是否正在尝试做一些不可能的事情.然而,我们(不是我)已经设法将机器人放在火星上,所以我希望我能解决这个问题.
因此,可以使用MutationObservers在加载/解析页面时动态更改HTML内容吗?
感谢您的帮助或任何指示.
问候,尼克
javascript ab-testing optimizely mutation-observers mutation-events
我的应用程序使用会话 cookie。不知何故,这个 cookie 被注入了一些用户的跟踪信息:
JSESSIONID=0624EF8E3E5E7CCBDB52BAE6C44C5AFB.jvm-application; optimizelySegments=%7B%22204658328%22%3A%22false%22%2C%22204736122%22%3A%22referral%22%2C%22204775011%22%3A%22ie%22%2C%222%22%2C%122%22%22%2722%21 %7D; optimizelyEndUserId=oeu6892721299353r0.9526657112221855; optimizelyBuckets=%7B%7D
JSESSIONID 来自我的应用程序,而 optimizelyXXX 元素似乎来自 optimizely.com,请参阅optimizely FAQ。
这怎么可能,我该怎么办?ModSecurity 抱怨可能的注入。当然我可以禁用此规则,但我想了解发生了什么。
我在http://www.makeitreal.camp/ 中优化使用,但是当我打开浏览器控制台时,我看到了这个错误:
XMLHttpRequest cannot load http://app.optimizely.com/account/snippet_installed?project_id=3129750879&wxhr=true.
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.makeitreal.camp' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
似乎一切正常,因为优化的诊断说“您的实验似乎已正确实施。 ”但我想确保此错误不会影响实验。
我怎样才能避免这个错误?
Trying to use the React and JavaScript SDKs for Optimizely, but getting the following error in the console:
OPTIMIZELY: Optimizely object is not valid. Failing isFeatureEnabled.
Run Code Online (Sandbox Code Playgroud)
More info about my setup below:
Installed via Yarn: yarn add @optimizely/react-sdk
Import statement in the app container:
import {
createInstance
} from '@optimizely/react-sdk'
Run Code Online (Sandbox Code Playgroud)
Logic in render function:
const optimizely = createInstance({
sdkKey: '<SDK_KEY>',
})
const enabled = optimizely.isFeatureEnabled('example_feature', 'user123');
Run Code Online (Sandbox Code Playgroud)
I get this error in the Chrome console:
OPTIMIZELY: Optimizely object is not …Run Code Online (Sandbox Code Playgroud) 我正在为我的公司项目使用 cocoapods,但我在获取最新的 pod 方面遇到了问题。
在我的 Podfile 中,我有很多 Pod,但我的痛点是优化 Pod。
pod 'Optimizely-iOS-SDK' - 这应该获得最新的 pod 版本,但它没有。最新版本是 1.2.2,但现在是 1.0.78。
当我制作特定版本的 pod 时: pod 'Optimizely-iOS-SDK', '1.2.2' 这会抱怨:
[!] 无法满足以下要求: -Optimizely-iOS-SDK (= 1.2.2)要求Podfile
Cocoapods 版本:0.39.0
OS X: El Capitan
红宝石版本:红宝石 2.0.0p645
我很感激任何关于我做错了什么的指示。
谢谢
编辑:我的主要问题是,没有提及任何版本号,为什么它会得到较旧的(1.0.78)版本而不是最新版本?
更新: pod install --verbose
-> 安装 Optimizely-iOS-SDK (1.0.78)
Git 下载 Git 下载 $ /usr/bin/git clone https://github.com/optimizely/Optimizely-iOS-SDK.git /var/folders/n7/tr3hj67d0gxbdbm2thmsrr840000gp/T/d20151014-1032-jwurwk --single-branch --depth 1 --branch 1.0.78 克隆到 '/var/folders/n7/tr3hj67d0gxbdbm2thmsrr840000gp/T/d20151014-1032-jwurwk'... 错误:RPC 失败;结果 = 56,HTTP 代码 = 200
[!] 安装 Optimizely-iOS-SDK 时出错 …
我试图更好地理解optimize api 是如何工作的。我是新手。因此,如果我问的问题非常明显,请原谅。
但我认为 API 的工作原理是使用一个优化对象,该对象有两个方法 get 和 push,以及一个数据对象。但后来我在 optimizely 网站上看到了这段代码,它似乎将变量 windows[optimizely] 分配给一个数组 [ ]。不应该是 { } 而不是 [ ]。请帮忙
var activated = function(event) {
// The Optimizely snippet has been activated.
var visitorId = window.optimizely.get('visitor_id').randomId;
console.log("The visitor ID is: " + visitorId);
};
window["optimizely"] = window["optimizely"] || [];
// SHOULDN"T THE ABOVE BE **window["optimizely"] = window["optimizely"] || {}
window["optimizely"].push({
type: "addListener",
filter: {
type: "lifecycle",
name: "activated"
},
// Add the activated function as a handler.
handler: …Run Code Online (Sandbox Code Playgroud) optimizely ×12
javascript ×7
ab-testing ×2
api ×2
dom ×2
angularjs ×1
cocoapods ×1
cookies ×1
cors ×1
https ×1
session ×1
ssl ×1
wysiwyg ×1