Нет трафика в отчете об эксперименте
Я тестирую Optimizely и создал реализацию в моем проекте activjs. Скрипт optimizely загружается только при необходимости (lazyLoad), поэтому по этой причине при создании нового эксперимента в Dashboard я получаю сообщение об ошибке "фрагмент отсутствует на странице", который можно игнорировать.
При проведении эксперимента через приложение я могу получить доступ к активному варианту и т. Д. В журнале не отображаются и не отображаются ошибки.
Текущая реализация или тестирование происходит на нашем частном сервере, но мы не уверены, связано ли это с проблемой; поэтому, если вы не подключены к VPN, вы не сможете увидеть страницу.
В настоящее время только я должен был получить к нему доступ, но я должен увидеть некоторый трафик в отчете, но пока было 0.
В журнале нет ошибок
4678891099.js:212 Optimizely / Main / Started, revision 99 [time 0 +0]
4678891099.js:212 Optimizely / Query / Blocked request to load unsafe script: null [time 9 +9]
4678891099.js:212 Optimizely / Segmenter / Loading segments cookie. [time 13 +4]
4678891099.js:212 Optimizely / Segmenter / Segments cookie contains segment id: 4680143815 [time 13 +0]
4678891099.js:212 Optimizely / Segmenter / Segments cookie contains segment id: 4650727160 [time 13 +0]
4678891099.js:212 Optimizely / Segmenter / Segments cookie contains segment id: 4679173736 [time 13 +0]
4678891099.js:212 Optimizely / Activator / Triaging 3 segments. [time 13 +0]
4678891099.js:212 Optimizely / Condition / Testing segment 4680143815 [time 14 +1]
4678891099.js:212 Optimizely / Activator / Passed conditions for segment 4680143815 [time 14 +0]
4678891099.js:212 Optimizely / Condition / Testing segment 4650727160 [time 14 +0]
4678891099.js:212 Optimizely / Activator / Passed conditions for segment 4650727160 [time 14 +0]
4678891099.js:212 Optimizely / Condition / Testing segment 4679173736 [time 14 +0]
4678891099.js:212 Optimizely / Activator / Passed conditions for segment 4679173736 [time 14 +0]
4678891099.js:212 Optimizely / Segmenter / Evaluating Segment 4680143815 [time 14 +0]
4678891099.js:212 Optimizely / Segmenter / Evaluating Segment 4650727160 [time 14 +0]
4678891099.js:212 Optimizely / Segmenter / Evaluating Segment 4679173736 [time 14 +0]
4678891099.js:212 Optimizely / Integrator / Loading third-party segments. [time 18 +4]
4678891099.js:212 Optimizely / Visitor / Initializing [time 18 +0]
4678891099.js:212 Optimizely / Visitor / Found segment 4680143815 [time 19 +1]
4678891099.js:212 Optimizely / Visitor / Found segment 4650727160 [time 19 +0]
4678891099.js:212 Optimizely / Visitor / Found segment 4679173736 [time 19 +0]
4678891099.js:212 Optimizely / Info / Is Classic Optimizely enabled: true [time 20 +1]
4678891099.js:212 Optimizely / Info / Diagnostic enabled: false [time 20 +0]
4678891099.js:212 Optimizely / Info / Force variation enabled: false [time 20 +0]
4678891099.js:212 Optimizely / Info / Browser type: gc [time 20 +0]
4678891099.js:212 Optimizely / Info / Browser version: 61.0.3163.100 [time 20 +0]
4678891099.js:212 Optimizely / Info / Mobile browser type: android [time 20 +0]
4678891099.js:212 Optimizely / Info / New vs returning: returning [time 20 +0]
4678891099.js:212 Optimizely / Info / Source type: null [time 21 +1]
4678891099.js:212 Optimizely / Info / User ID: oeu1507206204323r0.4361859226305451 [time 22 +1]
4678891099.js:212 Optimizely / Condition / Testing experiment 8931711070 [time 22 +0]
4678891099.js:212 Optimizely / Condition / Testing URLs for experiment 8931711070 [time 22 +0]
4678891099.js:212 Optimizely / Condition / Failed to match any URL for experiment 8931711070 [time 24 +2]
4678891099.js:212 Optimizely / Condition / Testing experiment 8785608124 [time 24 +0]
4678891099.js:212 Optimizely / Condition / Testing URLs for experiment 8785608124 [time 24 +0]
4678891099.js:212 Optimizely / Distributor / Going to distribute experiment "Question variation for "Is investing for you?"" (8785608124) [time 24 +0]
4678891099.js:212 Optimizely / Distributor / Not distributing experiment 8785608124 (already in plan) [time 24 +0]
4678891099.js:212 Optimizely / Tracker / Queued tracking event 'https://foobarbeta.xyz/msl-1353-optimizely-screener-q2/risk/suitability' [time 29 +5]
4678891099.js:212 Optimizely / Tracker / Making a log request. [time 32 +3]
4678891099.js:212 Optimizely / Evaluator / 0 times waited [time 36 +4]
4678891099.js:212 Optimizely / Evaluator / 0 total times waited [time 36 +0]
4678891099.js:212 Optimizely / API / Finalizing API. [time 36 +0]
4678891099.js:212 Optimizely / Main / End of main [time 38 +2]
4678891099.js:212 Optimizely / API / Error for unknown function "page" [time 42 +4]
4678891099.js:212 Optimizely / Tracker / Removed a pending log event from the pending events cookie. [time 393 +351]
4678891099.js:212 Optimizely / Activator / Timeout: will not act on future async info. [time 2041 +1648]
4678891099.js:212 Optimizely / API / Called function "log" [time 3235 +1194]
вы можете увидеть активный вариант и т. д.
результат журнала, когда событие вызвано
и отчет
Вы также можете увидеть customEvent или цель ниже:
Реактив JS компонент:
import React, { PropTypes } from 'react'
class OptimizelyExperiment extends React.Component {
constructor (props) {
super(props)
window.optimizely = window.optimizely || []
this.onReadyRecallMs = 10
this.defaultState = {
variantName: null,
result: null,
}
this.state = Object.assign({}, this.defaultState)
this.mapVariantToState = this.mapVariantToState.bind(this)
}
componentWillMount () {
if (!this.isReady()) {
this.insertScript()
this.observeReady(this.mapVariantToState)
}
}
componentDidMount () {
if (this.isReady()) {
this.mapVariantToState()
}
}
componentDidUpdate (prevProps, prevState) {
if (this.isReady() && prevState.variantName !== this.state.variantName) {
this.setResult()
}
}
observeReady (cb) {
const { allExperiments } = window.optimizely
if (allExperiments && typeof allExperiments[this.props.experimentId] !== 'undefined') {
this.triggerPageActivation()
this.props.customEvents.forEach(({selector, eventType, eventName}) =>
this.attachEventHandler(selector, eventType, eventName))
if (typeof cb === 'function') cb()
} else {
const t = setTimeout(() => {
clearTimeout(t)
this.observeReady(cb)
}, this.onReadyRecallMs)
}
}
mapVariantToState () {
const { activeExperiments, variationIdsMap, allVariations } = window.optimizely
activeExperiments.forEach(experimentId => {
const variationId = variationIdsMap[experimentId][0] // simple AB test, not multiple
const { name } = allVariations[variationId]
this.setState({ variantName: name })
})
}
insertScript () {
const { projectId } = this.props
const protocol = `${document.location.protocol}//`
const scriptTag = document.createElement('script')
scriptTag.type = 'text/javascript'
scriptTag.async = true
scriptTag.src = `${protocol}cdn.optimizely.com/js/${projectId}.js`
document.getElementsByTagName('head')[0].appendChild(scriptTag)
}
runExperiment () {
const { variantName } = this.state
const { experimentsMap } = this.props
let result = experimentsMap[variantName] || false
if (typeof result === 'function') {
result = result()
}
return result
}
isReady () {
return typeof window.optimizely === 'object' &&
typeof window.optimizely.data === 'object' &&
typeof window.optimizely.allExperiments === 'object'
}
setResult () {
this.setState({
result: this.runExperiment(),
})
}
triggerPageActivation () {
window.optimizely.push({
type: 'page',
pageName: this.props.pageName,
})
}
attachEventHandler (selector, eventType, eventName) {
const target = document.querySelector(selector)
const handler = () => {
window.optimizely.push({
type: 'event',
eventName: eventName,
})
target.removeEventListener(eventType, handler)
}
target.addEventListener(eventType, handler)
}
render () {
return this.state.result
}
}
OptimizelyExperiment.propTypes = {
projectId: PropTypes.string.isRequired,
experimentId: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
experimentsMap: PropTypes.object.isRequired,
pageName: PropTypes.string,
customEvents: PropTypes.array,
}
export default OptimizelyExperiment
Теперь я решил изменить URL Target (чтобы вызвать сбой) и сравнить с предыдущим результатом (в котором нет ошибки в журнале консоли). Что приводит к:
Optimizely / Condition / Failed to match any URL for experiment 8785608124 [time 15 +0]
Таким образом, если проблема не связана с VPN или если репортеру требуются долгие часы для получения каких-либо данных, я не знаю, где проблема.
1 ответ
Создан новый эксперимент, с новыми целями и т. Д. Сохранена цель по умолчанию "Задание", которую я удалил ранее, и теперь я вижу посетителей и цель CustomEvent, которая была запущена из приложения.
"Участие / процент посетителей, которые нажали на любую часть экспериментальной страницы".
Это, кажется, причина, почему это не работало.