Coveo Page View Analytics

Coveo for Sitecore Specific Rendering The Coveo Page View Analytics rendering leverages the module to record view events in the Coveo Usage Analytics service. The rendering adds a JavaScript code snippet to the current page.

Coveo Machine Learning Content Recommendations depend heavily on view usage analytics event data.

Usage Notes

  • Whereas the Coveo for Sitecore Analytics rendering tracks events that take place in a search interface (e.g., selecting a facet, performing a keyword search, clicking on a search result), the Coveo Page View Analytics rendering is meant to track view events in website content pages.

  • For further details regarding the combined use of the Coveo Page View Analytics and Coveo Page View renderings to add user context in your Sitecore article items, see Leverage User Context for Coveo Machine Learning.

  • Coveo usage analytics are only sent to the Coveo Usage Analytics service when viewing the published website. Actions performed when viewing site pages in the Experience Editor or in Preview Mode aren’t recorded in the Coveo Usage Analytics service.

  • The Coveo Administration Console currently does not support reporting on view events.

Insertion Location

The Coveo Page View Analytics rendering is an Allowed Control in the following placeholder(s): UI Resources

Example insertion sequence where a PageViewPlaceholder placeholder was added directly to the article MVC layout .cshtml file. The Allowed Controls of this placeholder were set to enable insertion of the Coveo Page View Analytics rendering.

Coveo for Sitecore SXA rendering insertion locations aren’t limited by placeholder Allowed Controls. The Coveo Page View Analytics rendering may therefore be inserted throughout the partial design.

Example insertion sequence for the Coveo Page View Analytics rendering.

Data Source Options

Option name Description
Content type Allows selection of a Sitecore tag item located under the sitecore/system/settings/buckets/TagRepository content tree folder
Coveo Usage Analytics custom metadata Key-value custom metadata pair(s) to log with the page view event (see Add Custom Usage Analytics Metadata in Coveo for Sitecore)

Sample Generated HTML and Corresponding Visual Output

  // Code snippet to load and log page view analytics.
  // Imported from
  (function (c, o, v, e, O, u, a) {
      a = 'coveoua'; c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) };
      c[a].t =; u = o.createElement(v); u.async = 1; u.src = e;
      O = o.getElementsByTagName(v)[0]; O.parentNode.insertBefore(u, O)
  })(window, document, 'script', '');
  document.addEventListener("CoveoSearchEndpointInitialized", function () {
      var accessToken = Coveo && Coveo.SearchEndpoint && Coveo.SearchEndpoint.defaultEndpoint && Coveo.SearchEndpoint.defaultEndpoint.accessToken
          ? Coveo.SearchEndpoint.defaultEndpoint.accessToken.token
          : "";
      var customMetadata = @Html.Raw(Model.Properties.MetadataAsJson);
      if (typeof (CoveoForSitecoreUserContext) !== "undefined") {
          var currentContext = CoveoForSitecoreUserContext.handler.getContext();
          Object.keys(currentContext).forEach(function(key) {
              customMetadata["c_context_" + key] = currentContext[key];
      coveoua('onLoad', function() {
          // Completely overrides the way the base URL is resolved since the default implementation appends a `/rest` that we do not want.
          // Remove when migrating to version 2+
          Object.defineProperty(coveoanalytics.CoveoAnalyticsClient.prototype, 'baseUrl', { get() { return "@Model.Properties.CoveoAnalyticsEndpoint" + "/v15" }});
          coveoua('init', accessToken);
          coveoua('send', 'view', customMetadata);

Sample API call via Coveo for Sitecore proxy:

Sample API call

What's Next for Me?