云眼 Web 实验的 AngularJS 帮助

云眼About 2 min

云眼 Web 实验的 AngularJS 帮助

本主题介绍如何:

  • AngularJS 站点上无缝运行云眼Web实验

AngularJS 是当今最流行的单页应用程序框架之一。云眼 Web 实验在单页应用程序上不会开箱即用,但是在 AngularJS 的情况下,有一些简单的步骤可以使其无缝工作。云眼 Web 实验在页面的页面加载事件期间运行,这是普通网页所需的。当浏览器加载页面时,云眼 Web 实验将运行,评估每个实验的目标条件,并在满足这些条件时执行这些条件。对于单页应用,在页面之间导航时不会重新加载页面,因此不会执行云眼 Web 实,并且即使实验配置为在当前 URL 上运行,也不会激活实验。

默认情况下,云眼 Web 实验会立即执行,这意味着云眼 Web 实验会在页面加载时尽快评估其定位条件。云眼 Web 实验有6种激活模式。

在 AngularJS 的情况下,将实验切换为手动激活将使它们运行,而无需进行任何其他配置。

实现

要启用云眼 Web 实验以在 AngularJS 站点上运行实验,需要将以下代码行复制到 Project Javascript。

并非所有计划都可以访问 Project Javascript 。如果是这种情况,可以将代码直接复制到页面中。

    (function() {
      'use strict';
      // Wait for angularJS to be ready
      var interval = setInterval(function () {
        if (window.angular !== undefined && window.angular.element(document.getElementsByTagName('body')).scope() !== undefined) {
          clearInterval(interval);
          var scope = window.angular.element(document.getElementsByTagName('body')).scope();
          // Listen on new page loaded
          scope.$on('$viewContentLoaded', function () {
            // Sometimes $viewContentLoaded is called too early, in that case you can use $locationChangeSuccess
            // Activate the manually activated experiments
            window.eyeofcloud.push(["activate"]);
            // Fake a pageview event. 
            // A pageview event will be sent by default if an experiment is running.
            // They get de-duplicated server side
            window.eyeofcloud.push(["trackEvent", document.URL]);
          });
        }
      }, 500);
    })();

此代码使用 AngularJS listener 和云眼实验 JS API 在每次 AngularJS 加载新页面时激活手动激活的实验。实验仍需要满足网址和受众群体定位条件才能执行。除此之外,它还会触发一个云眼自定义事件来注册每个新网页的网页浏览量,以便将其用作实验中的网页浏览量目标。

设置实验

需要将实验的激活模式从“立即”切换到“手动”。请参阅激活页面文档以了解如何更改激活模式。此外,有关重要信息,请参阅对动态网站的支持。

确保网址定位条件设置正确。现在可以开始实验,它将在 AngularJS 页面上激活。

Last update:
Contributors: zhangweixue