Pages

Prev Next

1 Overview

This page provides a comprehensive guide on how to track and analyze page-related data in Mapp Intelligence. It details the configurable properties, analysis locations, and request parameters.

1.1 Individual Setup

Only name and search are automatically available when data is transmitted. All other properties—whether Page Parameters, Categories, or Goals—require individual setup. While most customers receive a predefined configuration, all these elements can be fully customized based on tracking requirements.

Before defining new parameters, categories, or goals, check your existing setup to determine which elements are already available and which need to be configured manually.


2 Configurable Properties

The following table outlines all supported properties, their descriptions, and request parameters.

Property

Description

Data Type

Request Parameter

name

Unique identifier of your page. By default, the page URL is used. Parameters and hash in the URL are excluded. This property is automatically available. The value is analyzed in Navigation > Pages > Pages.

String

p

search

Contains terms entered in the internal search of the website or app. This property is automatically available. The value is analyzed in Marketing > Search Phrases > Internal Search Phrases.

String

is

numberSearchResults

The number of results returned in an internal search query. This is a Page Parameter and requires setup. The value is analyzed as a metric.

Number

cp771

errorMessages

Tracks error messages on the page, such as system errors or missing content warnings. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp772

paywall

Indicates whether an article is behind a paywall. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

Boolean

cp773

articleTitle

Captures the specific title of an article in addition to the general page name. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp774

contentTags

Allows tagging articles with multiple categories or keywords for analysis. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp775

title

Stores a readable version of the page title for improved reporting and analysis. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp776

type

Defines the type of page (e.g., "overview"). This is a Page Parameterand requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp777

length

Specifies the length classification of the page (e.g., "large"). This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp778

daysSincePublication

Tracks how many days have passed since an article was published. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

Number

cp779

testVariant

Stores the name of a test variant for A/B testing. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp780

testExperiment

Captures the name of an experiment in A/B testing. This is a Page Parameter and requires setup. The value is analyzed in Navigation > Page Parameters.

String

cp781

parameter

Tracks additional custom data points for a page. More details below.

Object

cp[ID]

category

Groups pages into structured content categories. More details below.

Object

cg[ID]

goal

Defines and tracks key website goals. More details below.

Object

cb[ID]

2.1 Page Parameters

Page parameters refer to individual pages and are used to track additional details such as error messages, content tags, and test experiments.

  • Mapp Intelligence provides a set of predefined Page Parameters, including those listed in the table above (e.g., paywall, title, type). These predefined parameters can be enabled as needed.

  • Additionally, users can create completely custom Page Parameters if their tracking requirements go beyond the predefined options. Custom parameters allow you to track any additional data relevant to your website.

  • Values can be analyzed in Navigation > Page Parameters if they are of type text, or as metrics if they are of type number.

For setup instructions: How to Set Up Custom Parameters

2.2 Categories (Content Groups)

Categories define fixed classifications for pages, typically used to group content into structured areas.

  • Categories are assigned once to a page, in the first-ever request of that page, and do not change unless imported manually.

  • The ID and data type (text/number) are defined during setup.

  • Categories are useful for defining structural groupings, such as:

    • Main Section of a website (e.g., "News," "Sports," "Lifestyle")

    • Subsections within a main section (e.g., under "News": "Politics," "Technology," "Economy")

  • It is recommended to implement page and content group tracking in parallel.

  • Values can be analyzed in Navigation > Content Groups if they are of type text, or as metrics if they are of type number.

For setup instructions: How to Set Up Categories

Content groups are assigned one time to a page. If a page is tracked together with a content group, all subsequent page calls of the page will also be assigned to this content group. Only the first-ever tracked value will be shown.

We, therefore, recommend implementing content IDs and content groups while embedding the pixel.

See also How can I replace missing values ("-") in categories?

2.3 Goal Tracking

Goal tracking allows you to measure when a specific action has been completed on a page. This is essential for evaluating user behavior and  performance.

  • Goals can be used to track specific actions completed on a page, such as a newsletter signup or user registration.

  • They are crucial for campaign success analysis, enabling attributed campaign evaluation. Ideally, users interacting with a campaign complete a goal, which must be tracked.

  • If a goal should be tracked when a page loads, it needs to be explicitly passed.

  • The Order goal is predefined for e-commerce tracking and does not need to be manually set on a page.

  • Goals can be analyzed in Marketing > Website Goals.

For setup instructions: How to define website goals


3 Objects and Methods

Tracking Objects

Mapp Intelligence provides four distinct tracking objects, each intended for a specific purpose. The main object, data, includes the entire tracking configuration, while parameter, category, and goal allow selective updates.

  • data

    Contains all tracking information. Use this object to initialize tracking or update multiple tracking values at once.

  • parameter

    Stores custom tracking attributes (e.g., A/B-test variants or error codes). Use this object to update or set custom values independently, without affecting other page properties.

  • category

    Assigns pages to structured content groups. Use this object to update content group assignments individually.

  • goal – Tracking User Actions

    Tracks key actions or conversions (e.g., newsletter sign-ups or purchases). Use this object when you need to track a specific goal independently from other page data.

Supported Methods

Each of the objects above supports the following four methods:

Methods

Description

set ()

Completely overwrites existing data with provided values.

add()

Updates or adds only specific values, keeping existing data unchanged.

get()

Retrieves the current configuration or stored data.

remove()

Deletes all or selected data from the object.

3.1 data – Full Page Configuration

The data object includes all page-tracking information, combining page attributes (name, search) and the nested objects parameter, category, and goal.

/**
 * @param {{
 *		[name="default page name"]: string,
 *      [search=""]: string,
 *      [numberSearchResults=0]: number,
 *      [errorMessages=""]: string,
 *      [paywall=false]: boolean,
 *      [articleTitle=""]: string,
 *      [contentTags=""]: string,
 *      [title=""]: string,
 *      [type=""]: string,
 *      [length=""]: string,
 *      [daysSincePublication=0]: number,
 *      [testVariant=""]: string,
 *      [testExperiment=""]: string,
 *      [parameter={}]: {[number]: string},
 *      [category={}]: {[number]: string},
 *      [goal={}]: {[number]: string}
 * }} data
 *
 * @returns {wtSmart.page.data}
 */
wtSmart.page.data.set(data);
/**
 * @param {{
 *		[name]: string,
 *      [search]: string,
 *      [numberSearchResults]: number,
 *      [errorMessages]: string,
 *      [paywall]: boolean,
 *      [articleTitle]: string,
 *      [contentTags]: string,
 *      [title]: string,
 *      [type]: string,
 *      [length]: string,
 *      [daysSincePublication]: number,
 *      [testVariant]: string,
 *      [testExperiment]: string,
 *      [parameter]: {[number]: string},
 *      [category]: {[number]: string},
 *      [goal]: {[number]: string}
 * }} data
 *
 * @returns {wtSmart.page.data}
 */
wtSmart.page.data.add(data);
/**
 * @returns {{
 *	    name: string,
 *      search: string,
 *      numberSearchResults: number,
 *      errorMessages: string,
 *      paywall: boolean,
 *      articleTitle: string,
 *      contentTags: string,
 *      title: string,
 *      type: string,
 *      length: string,
 *      daysSincePublication: number,
 *      testVariant: string,
 *      testExperiment: string,
 *      parameter: {[number]: string},
 *      category: {[number]: string},
 *      goal: {[number]: string}
 * }}
 */
wtSmart.page.data.get();
/**
 * @param {string[]} [removeList]
 *
 * @returns {wtSmart.page.data}
 */
wtSmart.page.data.remove(removeList);

Example

The following example demonstrates how these methods are combined in practice:

window.wtSmart = window.wtSmart || [];
window.wtSmart.push(function(wtSmart) {
	// set page data
	wtSmart.page.data.set({
		name: 'en.index.home',
		search: 'search term',
		numberSearchResults: 7,
		errorMessages: 'error: ...',
		paywall: false,
		articleTitle: 'article title',
		contentTags: 'content tags',
		title: 'page title',
		type: 'page type',
		length: 'medium',
		daysSincePublication: 5,
		testVariant: 'test variant',
		testExperiment: 'test experiment',
		parameter: {
			5: 'parameter value 5'
		},
		category: {
			8: 'category value 8'
		},
		goal: {
			2: 'goal value 2'
		}
	});

	// add page data
	wtSmart.page.data.add({
		paywall: true,
		category: {
			5: 'category value 5'
		}
	});

	// get page data
	var data = wtSmart.page.data.get();
	 
	// remove all page data
	wtSmart.page.data.remove();

	// remove only testVariant and testExperiment from page data
	wtSmart.page.data.remove(['testVariant', 'testExperiment']);
});

3.2 parameter – Custom Page Values

The parameter object stores custom values assigned to a page.

/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.parameter}
 */
wtSmart.page.parameter.set(data);
/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.parameter}
 */
wtSmart.page.parameter.add(data);
/**
 * @returns {{[number]: string}}
 */
wtSmart.page.parameter.get();
/**
 * @param {number[]} [removeList]
 *
 * @returns {wtSmart.page.parameter}
 */
wtSmart.page.parameter.remove(removeList);

Example

The following example demonstrates how these methods are combined in practice:

window.wtSmart = window.wtSmart || [];
window.wtSmart.push(function(wtSmart) {
	// set page parameter
	wtSmart.page.parameter.set({
		5: 'parameter value 5'
	});

	// add page parameter
	wtSmart.page.parameter.add({
		8: 'parameter value 8'
	});

	// get page parameter
	var parameter = wtSmart.page.parameter.get();

	// remove all page parameter
	wtSmart.page.parameter.remove();

	// remove only page parameter 5
	wtSmart.page.parameter.remove([5]);
});

3.3 category – Page Classification

The category object assigns a page to content groups.

/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.category}
 */
wtSmart.page.category.set(data);
/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.category}
 */
wtSmart.page.category.add(data);
/**
 * @returns {{[number]: string}}
 */
wtSmart.page.category.get();
/**
 * @param {number[]} [removeList]
 *
 * @returns {wtSmart.page.category}
 */
wtSmart.page.category.remove(removeList);

Example

The following example demonstrates how these methods are combined in practice:

// set page category
wtSmart.page.category.set({
	5: 'category value 5'
});

// add page category
wtSmart.page.category.add({
	8: 'category value 8'
});

// get page category
var category = wtSmart.page.category.get();

// remove all page category
wtSmart.page.category.remove();

// remove only page category 8
wtSmart.page.category.remove([8]);

3.4 goal – Tracking User Actions

The goal object is used to track specific actions completed by users on a page.

/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.goal}
 */
wtSmart.page.goal.set(data);
/**
 * @param {{[number]: string}} data
 * 
 * @returns {wtSmart.page.goal}
 */
wtSmart.page.goal.add(data);
/**
 * @returns {{[number]: string}}
 */
wtSmart.page.goal.get();
/**
 * @param {number[]} [removeList]
 *
 * @returns {wtSmart.page.goal}
 */
wtSmart.page.goal.remove(removeList);

Example

The following example demonstrates how these methods are combined in practice:

// set page goal
wtSmart.page.goal.set({
	5: 'goal value 5'
});

// add page goal
wtSmart.page.goal.add({
	8: 'goal value 8'
});

// get page goal
var goal = wtSmart.page.goal.get();

// remove all page goals
wtSmart.page.goal.remove();

// remove only page goal 8
wtSmart.page.goal.remove([8]);

4 Code Generator

Use the code generator to create individual code that you can then integrate directly into the website.