- 8 Minutes to read
- Print
- DarkLight
Pages
- 8 Minutes to read
- Print
- DarkLight
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
parameter | Tracks additional custom data points for a page. More details below. | Object |
|
category | Groups pages into structured content categories. More details below. | Object |
|
goal | Defines and tracks key website goals. More details below. | Object |
|
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.