Data Collectors

Production

Purpose

Configuration   Platforms   Analysis   Container

image

 

When the same host name addresses several countries or independent applications, it can be required to track each of them in different storages, in order to keep levels 2 for another usage.

This worksheet allows configuring such split, based on first folders that can exist or virtually created by customization (for example if the country is in a parameter, or stored in a cookie, or not in a subsequent folder).

The list is sorted (alphabetically descending) during the generation process, so you can enter your values without worrying about logical order.

Fields

PATH ROOT

Initial or Customized Path Root.

GA|GTM|TC

Enter the Google Analytics Property specific to this path and/or its Google Tag Manager Container ID and/or its Tag Commander one, all separated by |.

Note that order doesn’t matter.

UA_xxxxxx

Google Analytics Property. Precede by @ if you want using Advertising snippet (DoubleClick)

GTM_xxxx

Google Tag Manager Container ID

TC:xx/yyyy

Tag Commander Container as id/name.

Example: 4343/tc_MyGlobal_21

If you want a cache buster, add: ,cb

TCN:xx

Tag Commander Container index: reuse the id/name declared globally and change its index.

 

ATI SITE ID

Type a declared ATI Site ID. You can pick one from Sites List.

 

ATI SITE NAME

Automatically populated when ATI Site ID has been recognized.

 

Perimeters

Purpose

Configuration   Platforms   Analysis   Container

image

 

Perimeters allows splitting the website in several sub-websites that can be assessed independently in AT Internet, or used as Content Group in Google Analytics.

 

Fields

PATH ROOT

Final Path Root.

Depends on option selected for the Final Path. As it is a root, it cannot use wildcards.

Examples:

www.example.com/us/en/company/contact, with /us/en mapped as SE United States account, /company as level 2

Final Path option

Path to be set

Initial or Customized

/us/en/company

Remainder

/company

 

www.other.com/company/contact, with /us added as first folder by customization and mapped as APC United States account, /company as level 2

Final Path option

Path to be set

Customized

/us/company

Initial or Remainder

/company

For an exact match, end with a dot. A dot alone means “the landing” (no path in URL): it will override the Default Page Name.

Examples:

PATH

Matches

Doesn’t Match

/solution.

www.example/solution

www.example/solution/all

/solution

www.example/solution/all

www.example/my/solution

 

LEVEL 2

Choose a Level 2 in the proposed list. If the list doesn’t fit your requirement, you can extend or modify with the Levels 2 Dictionary.

 

PAGE NAME PATTERN

In this column, you can specify for all URL matching specified Path:

Arrow: Slight curve

A constant page name, that will replace computed name in all cases.

Arrow: Slight curve

An exclamation mark (!), to exclude page from tagging (Level 2 column will be ignored).

Arrow: Slight curve

A pattern, by using following marks:

 

Mark

Replaced by

%p

Computed page name or nothing when already specified on the left.

::any_value

Computed page name::any_value. Equivalent to: %p::any_value. Any further %p will be removed.

any_value::

any_value::Computed page name. Equivalent to: any_value:: %p. Nothing if previous %p.

#URL_param

URL parameter value (name is case insensitive). When parameter doesn’t exist: undefined

#URL_param1^#URL_param2^

URL parameter List: will use the value of the first one defined and not empty.

#?

All URL’s parameters values, separated by |

#

URL’s anchor. When no anchor: undefined.

|any_value

any_value (separator between other marks)

<value indicator>

Text retrieved by a value indicator.

<selector>#attr

Attribute value of a selected node.

 

Resulting name is always cleaned from leading or trailing chapter marks, as well as multiple occurrences. When resulting name is empty, it is replaced by last name in Path (folder or page name).

 

Examples:

Page path

PATH

PAGE NAME PATTERN

Raised tag name

/corporate/customer_refs.cfm?ref_type=Product

/corporate

corporate::%p::#ref_type

corporate::customer_refs::Product

/product-family.aspx?name=DA-DL103-AME

/product-family

product-family::#name::#

product-family::DA-DL103-AME

/product-family.aspx?name=DA-DL103-AME#catalog

product-family::DA-DL103-AME::catalog

/press/news?article=2564

/press

::#article

news::2564

/company/jobs/job-with-us?id=65465

/company

%p|-#id

job::job-with-us-65465

/press/news/viewer-news?id=32134

/press/news

News::<H2:>

News::Schneider Electric Innovation

 

LEVEL2 NAME

Automatically populated with the name declared in Level 2 Dictionary tab.

Note that in case of GA Mirroring, Level 2 Name is used to populate the Section Content Group.

 

PreProd

Purpose

Configuration   Platforms   Analysis   Container

image

 

When there are multiple non-production platforms that must be followed independently, or/and multiple production platforms, PreProd allows to configure each of them.

 

Fields

ATI SITE ID

Production ATI Site ID that must be switched to the preview one declared on this line.

Wildcard * is allowed, to match all those that have not been handled by previous lines, or to declare Alternate production platform.

 

ATI PREPROD SITE ID

Replacement ATI account that will be used when current host name matches the one declared in HOST NAME column.

Do not populate if you are declaring an Alternate production platform (current production account will be used when host name matches).

 

GA|GTM|TC

Replacement GA and/or GTM accounts that must be used as preview account (optional), with the same rules than for Production.

If left empty, production ones will still be used.

Do not populate if you are declaring an Alternate production platform.

 

HOST NAME

Host name that corresponds to this preview account (optional).

Example: intermediary.apc.com >> the declared preview account will be used for this platform.

Can be used to declare Alternate production platform, when * has been specified as ATI account and no preview account neither server have been set.

Always end by a line that doesn't specify anything in this column (to match all local or dev platforms).

 

ATI SITE NAME

Automatically populated when ATI preview account has been recognized.

 

Site Variables

Purpose

Configuration   Platforms   Analysis   Container

image

 

Once Site Variables declared in AT Internet and possibly their Custom Dimension counterpart in Google Analytics, you can define here the way to grab their value in page content or context.

 

Fields

PATH PATTERN

Final path pattern.

 

VALUE

Value indicator returning Site Custom Variable.

 

INDEX

Set the corresponding index, as declared in AT Internet.

 

COMMENT

Type what you want in this field, usually the description of variable’s aim.

 

Page Variables

Purpose

Configuration   Platforms   Analysis   Container

image

 

Here, you can associatecustom variables to a limited set of pages. While site variables are related to the visit, page variables are related to the page views.

 

Fields

PATH PATTERN

Final path pattern.

 

VALUE

Value indicator returning Page Custom Variable.

 

INDEX

Set the corresponding index, as declared in AT Internet.

 

COMMENT

Type what you want in this field, usually the description of variable’s aim.

 

Clicks & Events

Purpose

Define the click trackers. When Components mode is activated, such definitions are considered after Components ones, only for nodes still not tracked.

Downloads

Configuration   Platforms   Analysis   Container

image

 

Set up the clicks that must be tracked as downloads.

See Fields below.

 

Navigations

image

Set up the links that must be tracked as navigations.

Link selections that do not match Navigation type control will be ignored (not tracked).

See Fields below.

 

Exits

image

Set up the clicks that must be tracked as exits. Links selections that do not match Exit type control will be ignored (not tracked).

See Fields below.

 

Actions

image

Set up the links that must be tracked as actions. Action tracking allows other events type than clicks (mouseover, submit, change, ...).

See Fields below.

 

Fields

PATH PATTERN

Final path pattern.

Examples:

Final path pattern

Match

/download/*

All pages under: www.schneider-electric.com/download

/podcast

www.apc.com/podcast

/gallery

www.junolightinggroup.com/gallery.aspx page

*/support/*

All pages having a “support” folder in their path

*/company

All pages named “company”, whatever their path (or their extension)

*/product*/*

All pages with a folder starting by “product”

*

All pages

 

NODE(S) SELECTOR

Node(s) selector. Retrieve a collection of ascendants, or directly the selected nodes when NODE TYPE matches the selector leaf.

 

FILTERS
Purpose

The Filter select only nodes matching attributes condition. href is used by default when attribute name is not mentioned.

Syntax

filter

Node’s href Contains “filter”.

attr:filter

Node’s attribute attr Contains “filter”.

$f

Predefined Filter for the type.

|

OR operator

+

AND operator

!

NOT operator

If there is nothing specified, all selected nodes are kept.

Link node

Optionally filter selected link(s) in selected page(s) by specifying a set of filter strings that should be contained in href attribute:

Examples:

.pdf|.zip|.swf|.mp3|.mp4

Keep selected links with href containing .pdf or .zip or .mp3 or .mp4 in targeted URL.

www.se.com+.pdf|.zip|.swf|.mp3|.mp4

Same than above, but www.se.com is always required in href.

!apc.com

Keep selected links with href not containing apc.com

 

All node types

Non-links nodes do not have any href attribute, so the attribute on which filter must be applied can be specified as following:

attribute:filter or attribute:!filter

Examples:

.pdf|name:dnLoad

Keep selected nodes with href containing .pdf or with a name attribute containing dnLoad.

.doc|class:!cta+class:!controller

Keep selected nodes with href containing .doc or with a class attribute not containing cta nor controller.

data-ng-if:!registration

Keep selected nodes without attribute data-ng-if or when it doesn’t contain registration.

 

NAME
Purpose

Name is optional: if nothing’s specified, standard naming rules will be applied, see click tag name.

Syntax

It can be:

Arrow: Slight curve

A constant name, which will replace standard name in all cases.

Arrow: Slight curve

A pattern, by using the following contextual variables and markers:

 

Contextual Variables

Replaced by

%c

Counter, based 1. This is the index of the node in the selected nodes collection (relative to selected ascendant).

%d

destination: Exit: hostname /path, Navigation & Action: page name, Download: document name.

%f

First chapter of Content tag name. Example: page=myPage::en::index >> %f=myPage

%h

Hostname part of target URL, for Exit clicks only.

%l

Last part of current URL (without parameters nor extension).

%n

Name part of Content tag name (without chapters). Example: page=myPage::en::index >> %n=index

%p

Content tag name which have been raised by current page (value of xtpage).

%t

Target. This is the full path of target URL, without first /. Example: en/work/index.jsp

%v

Very last chapter of Content tag name (nothing if no chapter). Example: page=myPage::en::index >> %v=en

%x

Same than %p, but with chapter separators replaced by |

%?

Target parameters separated by |. For example: www.se.com?u=v&j=o: u=v|j=o

Markers

Replaced by

::any_value

Content tag name as prefix. Equivalent to %p::any_value.

any_value::

Destination as suffix Equivalent to any_value::%d

#attribute_name
#parameter

Node’s attribute value or, when doesn’t exist: link target parameter
In both cases, name is case insensitive.
When attribute doesn’t exist, it tries to find name in link parameters, otherwise: undefined.

#attr1^attr2^parameter

List of Node’s attribute value or, when doesn’t exist: link parameter. The first existing one of the list is used as value.
An empty value can also be specified to avoid undefined: #attribute_name^
In this case, if it is in a chapter, it will be removed.

#

Node text. When no text: undefined.

|any_value

any_value. Can also be used as separator between other marks.

<value indicator>

Text retrieved by a value indicator.

</selector>

Text retrieved by a node selector, by using current node as parent reference.
Note that such selector is allowed to navigate in parent hierarchy (by using </..selector>).

<selector>#attribute

Attribute value from node retrieved by a node selector.
Previous syntax can also be used, to start from current node as parent reference.

!...

An exclamation mark as first character prevents the tag to be raised. However, the expression behind is evaluated.

It can be used for excluding, for example in case of unsuitable bubbled events, or to simply trigger a JS function.

 

·    Default name is equivalent to %p::%d for Navigation, Download & Action, %d for Exit.

·    Improper specification, like missing attribute, is replaced by “undefined”.

·    “undefined” is kept only in chapters (to ensure structure consistency), but it is discarded from leaf name.

·    Empty chapters are removed.

All these default behaviours can be redefined in Customization JS.

 

Examples

Constant name

imageimage

Click name

Raised tag name

schneiderele.taleo.net-Search Job

schneiderele.taleo.net-Search Job

Page Tag name

Current page (content tag)

Click name

Raised tag name

home

::se_tv

home::se_tv

seg::buildings::hotels

seg::buildings::hotels::se_tv

seg::buildings::hotels

%v||%n::se_tv

buildings|hotels::se_tv

all-products

footer::%p::se_tv

footer::all_products::se_tv

Destination, Target, Hostname

Link type

Click name

Target

Resulting click name

Download (T)

teaser::

/solutions/whitepaper.pdf

teaser::whitepaper.pdf

Download (T)

%d::teaser

/solutions/whitepaper.pdf

whitepaper.pdf::teaser

Navigation (N)

menu::

/solutions/electricity

menu::electricity

Navigation (N)

menu::%t

/solutions/electricity

menu::solution/electricity

Exit (S)

header::

http://twitter.com/SchneiderElec

header::twitter.com/SchneiderElec

Exit (S)

header::%h

http://twitter.com/SchneiderElec

header::twitter.com

Node attribute(s) or text

#attributeName is replaced by the value of “attributeName” in considered node.

To know what attribute name can be used, inspect HTML code underneath the link to be tracked (Chrome/Firefox: right click on the link, then “Inspect Element”): an attribute is a node property declared as attributeName="value" inside <>.

·        Several attributes can be specified (one for each chapter plus name, meaning up to four).

·        If specified attribute name doesn’t exist, or if its value is empty, it is replaced by “undefined”.

# used without attribute name is replaced by text displayed for the link.

·       If there’s no text, it is also replaced by “undefined”.

·       If you intend to perform results comparison between different countries, keep in mind that attribute values are invariant, while node text can be translated.

image

image

 

Click name

Raised tag name

schneiderele.taleo.net::#id

schneiderele.taleo.net::taleoSearch

#id::#class

taleoSearch::TF_submit_button

<a id="myLink" class="myClass" name="myName" title="myTitle" href="/mypath/target">Target text</a>

Click name

Raised tag name

Header::#id

Header::myLink

Footer::#class::#id

Footer::myClass::myLink

Footer::#class::#name

Footer::myClass::myName

Menu::#href

Menu::/mypath/target

Teaser::#

Teaser::Target text

#title::

myTitle::target

Separator

Click name

Raised tag name

Footer::#id|_#

Footer:: myLink_Target text

Teaser::%p|-left-#

Teaser::home-left-Target text

Checkbox, Options List

FILTERS

NODE TYPE

HTML EVENT

ACTION NAME

Raised tag name

type:checkbox

INPUT

 

Status::</jsf:(function(n){return (n.checked?'checked':'unchecked');})>

Status::checked or Status::unchecked

 

SELECT

change

Option::</jsf:(function(n){return n.options[n.selectedIndex].value;})>

Option::my list option

 

NODE TYPE

Specify the node type to be selected (DIV, BUTTON, INPUT...). When omitted, links nodes (A) are selected.

 

HTML EVENT

Actions only: Specify the name of event to be listened in selected nodes. When omitted, click event is listened. Below the non-restrictive list of events that can be used:

NODE TYPE

HTML EVENT

When...

Mouse

All

dblclick

Double-click on the element

mousedown

Mouse button is pressed down on an element

mousemove

Mouse pointer is moving while it is over an element

mouseout

Mouse pointer moves out of an element

mouseover

Mouse pointer moves over an element

mouseup

Mouse button is released over an element

mousewheel

Deprecated. Use wheel event instead

wheel

Mouse wheel rolls up or down over an element

contextmenu

Context menu is triggered

Form & Element

 

blur

Element loses focus

 

change

Value of the element is changed

 

focus

Element gets focus

 

input

Element gets user input

 

invalid

Element is invalid

 

reset

Reset button in a form is clicked

 

search

User writes something in a search field

 

select

Some text has been selected in an element

 

submit

Form is submitted

Keyboard

 

keydown

User is pressing a key

 

keypress

User presses a key

 

keyup

User releases a key

 

Components

Purpose

Configuration   Platforms   Analysis   Container

image

 

This tab allows defining all Clicks & Events with a Component approach, a very efficient way to define and maintain in one definition all the usages made of a CMS component.

After defining the Mother Class (Component with no identifier), it introduces two variables:

$c

Component Identifier

$t

Type Specific, as defined in type columns

Components definitions are prioritized over Clicks & Events. In other words, when a node is not covered by Components definitions, Clicks & Events ones are considered, except if a “Fail-over Component” already handles all (as “link” example above).

 

Fields

COMPONENT

Component unique identifier, and value of $c. If empty, it will be considered as the default or Mother Class, from which other columns will be used when not defined.

 

Mother Class in NOT a fail-over but can be used for this purpose by ending with a Component without NODE SELECTOR (as “link” example above).

Note that in this case, Clicks & Events definitions wouldn’t be considered for links, only Actions ones would be effective.

 

NODE(S) SELECTOR

Node(s) selector. Retrieve a collection of ascendants, or directly the selected nodes when NODE TYPE matches the selector leaf.

 

FILTERS

See FILTERS.

 

NODE TYPE

See NODE TYPE.

 

HTML EVENT

See HTML EVENT.

 

L1 CHAPTER, L2 CHAPTER, L3 CHAPTER, LEAF NAME

The content of the corresponding click name part. Can be defined as a NAME chapter, but also by using $c or $t.

If not specified, it reuses Mother Class definition.

 

DOWNLOAD, NAVIGATION, EXIT, ACTION

Define the value of $t for each type. Use an exclamation mark ! to indicate this component must not be used with the corresponding type.

 

Visitor

Purpose

Configuration   Platforms   Analysis   Container

image

 

This tab allows registering Visitor ID and/or Category.

Visitor ID is an alphanumeric value. Visitor Category must be a numeric value.

Before being collected, all possible categories must be declared in AT Internet

 

Fields

PATH

Final path pattern.

 

VISITOR ID

Value indicator returning Visitor ID.

 

VISITOR CATEGORY

Value indicator returning Visitor Category. This must be a numeric value, declared in account configuration before registration.

If you need to perform a mapping between an alphanumeric value available in page and such numeric value declared in account, you can setup an Lookup Table.

Then, Category can be setup by using the following value indicator:

js:stat_map.key2value([map], [alphanumeric value],true);

with:

[map]

get[LookupTableName]Map.

[alphanumeric value]

Value collected in page. You can use a node selector as following:

stat_dom.getSelectorText(nodeSelector)

Or a value indicator as following:

stat_settings.getFieldValue(valueIndicator)

Example:

Value indicator using the Lookup Table “Category”

js:stat_map.key2value(getStatCategoryMap(),stat_dom.getSelectorText('globalContactPrimaryChannelCode'),true);

 

Search

Purpose

Configuration   Platforms   Analysis   Container

image

 

The configurator allows to setup search tracking without changing page content, neither tracking code nor data layer.

 

Fields

PATH PATTERN

Final path pattern. It must identify the search result page(s).

 

RESULTS LINKS SELECTOR

See Node(s) Selector. Select the area where results links must be tracked.

By default, only links nodes (<A>) are considered in the selection, but customization can decide to track any other type.

 

FILTERS

Same filtering syntax than Click & Events FILTERS.

 

KEYWORD

Value indicator returning the keyword(s) that leaded to the current result page. If there are several keywords, they must be separated by spaces.

 

PAGE NUM

Value indicator returning the index of current result page, based 1.

0 means “Search Without Results”.

 

PAGE SIZE

Value indicator returning the number of results per page.

 

#LINKS/RESULT

Value indicator returning the number of links contained in one result, 1 by default.

It is important for Click Search Position calculation.

 

COMMENT (OPTIONAL)

Type what you want in this column.

 


 

Sales

Purpose

The configurator allows to setup order & products tracking without changing page content, neither tracking code nor data layer (as required by all others tag management systems).

·   Most of fields are populated with value indicators.

·   For an order value, in most cases, it can be easily achieved with XTag Selector (by choosing “... for Value extraction” in context menu).

·   For a product value, which is not unique but a collection, a relative syntax must be used, see Product Collection.

·   For calculation with jsnum, you can use variables name corresponding to fields (indicated in bold gray in each field description below), but only from left to right (xt_roimt can use xt_totalTF, but not the contrary).

Example:
jsnum:(xt_totalATI-xt_totalTF) >> tax calculation

 

For results presentation, proper currency for the account must be declared in: Tools > Configuration > Goals and Sales > Customisation > Currency

 

Cart & Order

Configuration   Platforms   Analysis   Container

image

 

 

 

MODE
Definition

 

Mode

Description

Cart

Basket products registration: it expects products list to be populated, and nothing else.

This mode is useful when product registration is separated from order confirmation, or to activate “Abandoned products” analysis

>> In this case, Full order or Pre-Order must embed final products list.

Cart ID is mandatory, other fields will be ignored.

Full order

Confirmed order registration.

To be used when page after payment contains all expected data (order summary, possibly products).

Order ID is mandatory, and corresponding page(s) must be declared as Main Goal.

Pre-Order

Order and products registration. To be used in combination with Confirmation.

Useful when:

Order page doesn’t provide Order ID (for example before payment).

Confirmation page (when Order ID provided) doesn’t contain all data.

Cart ID is mandatory.

Confirmation

Order confirmed. To be used in combination with Pre-Order.

Both Order ID and Cart ID are mandatory, and corresponding page(s) must be declared as Main Goal.

Update

Order modification (status, amount). Don’t use, still not implemented.

 

Valid combinations

Modes

Description

Full order

Record confirmed order and products list

Cart, Full order

Record products list, then confirmed order (optionally with final products list)

Pre-order, Confirmation

Record pending order with products list, then order confirmation

Cart, Pre-order, Confirmation

Record products list, then pending order (optionally with final products list), then order confirmation

 

·  Any other configuration would be invalid or incomplete.

·  There could be several occurrences of each mode

 

Main Goal

Confirmation pages (indicated by Full order or Confirmation) must be declared as Main Goal pages in AT Internet:

 Tools > Configuration > Goals and Sales > Goal pages

1.      Click on  Add 

image

2.      Find your confirmation page among existing page names,

3.      Click on  >   to add it in Main goals pages list,

4.      Repeat 2 & 3 for each confirmation page,

5.      Click on  OK 

 

Order collection starts about one hour after this declaration

 

PATH PATTERN

Final path pattern.

·   This is the path where order data or cart content can be found.

·   This information is mandatory in all modes.

 

CART ID

Value indicator returning the shopping basket identifier.

·   Must be populated when you want to follow abandoned products (mode Cart), or if order is achieved in two steps (modes Pre-order and Confirmation).

·   When populated, it must be unique for AT Internet (and not only for the customer).

·   All fields below are not considered in Cart mode.

 

Variable name: xtidcart

 

ORDER ID

Value indicator returning the order reference.

·   Must be populated when you are tracking an order which has been realized (modes Full order or), whatever its status.

·   It must not exceed 50 characters, and must be unique for AT Internet (not only for the customer).

 

Variable name: xt_orderid

 

ORDER AMOUNT (TAX FREE)

Value indicator returning the total amount of order without tax, discount applied.

·   Must be populated when website sells with or without tax, in modes Full order or Pre-order.

 

Variable name: xt_totalTF

 

ORDER AMOUNT (TAX INCLUDED)

Value indicator returning the total amount of order with all tax included, discount applied.

·   Must be populated in modes Full order or Pre-order, except when website sells without tax.

 

Variable name: xt_totalATI

 

Discount & Customer

Configuration   Platforms   Analysis   Container

image

 

DISCOUNT AMOUNT (TAX FREE)

Value indicator returning the total discount without tax, if any (optional).

·   Not considered in Confirmation mode.

·   Can be populated when Order amount (tax free) has been setup.

·   This value can also be provided by products. In this case, this amount must be greater or equal to the addition of all product discounts (tax free).

 

Variable name: xt_discountTF

 

DISCOUNT AMOUNT (TAX INCLUDED)

Value indicator returning the total discount with all tax included, if any (optional).

·   Not considered in Confirmation mode.

·   Can be populated when Order amount (tax included) has been setup.

·   This value can also be provided by products. In this case, this amount must be greater or equal to the addition of all product discounts (tax included).

 

Variable name: xt_discountATI

 

NEW CUSTOMER (0/1)

Value indicator returning 0 when current order is for a registered customer, 1 when this is a new one.

·   Not considered in Confirmation mode.

·   In most cases, this will be a constant value, or a calculated one (with jstext: or jsnum:).

 

Variable name: xt_newcus

 

Shipping & Tax

Configuration   Platforms   Analysis   Container

image

 

SHIPPING METHOD

Value indicator returning a numeric ID that indicates the shipping method, corresponding to one of those declared in:

 Tools > Configuration > Goals and Sales > Label > Shipping methods

·   Not considered in Confirmation mode.

·   This field can also embed both: ID[Label], like: 1[Colissimo]
It means that, in most cases it cannot be retrieved by using a simple selector, a jstext: or jsnum: should be necessary.

·   Label must not contain specific characters.

·   If a label is already registered for a given ID, it will not be saved.

 

Variable name: xt_delivery

 

SHIPPING (TAX FREE)

Value indicator returning the total amount for shipping, without tax (optional).

·   Not considered in Confirmation mode.

·   Can be populated when Order amount (tax free) has been setup.

 

Variable name: xt_shipTF

 

SHIPPING (TAX INCLUDED)

Value indicator returning the total amount for shipping, with all tax (optional).

·   Not considered in Confirmation mode.

·   Can be populated when Order amount (tax included) has been setup.

 

Variable name: xt_shipATI

 

TAX

Value indicator returning the total amount of tax that you want to follow (optional).

·   Not considered in Confirmation mode.

·   It can be inferior or equal to the difference between Order amount (tax included)  and Order amount (tax free).

 

Variable name: xt_tax

 

Payment, Status, Promo and ROI

Configuration   Platforms   Analysis   Container

image

 

PAYMENT METHOD

Value indicator returning a numeric ID that indicates the payment method among those declared in:

 Tools > Configuration > Goals and Sales > Label > Payment methods

 

ID

Name

Category

>> You can complete this list with your own payment methods

1

Credit and debit card

Bank cards

2

Visa

Bank cards

3

MasterCard

Bank cards

4

Cheque

Cheque

5

Store credit card

Credit cards

6

Financing

Credit cards

7

Wire transfer

Bank transfer

8

Direct debit

Direct debit

9

PayPal

Electronic cash

 

Variable name: xt_paym

 

ORDER STATUS

Value indicator returning a numeric ID that indicates the order status, among those declared in:

 Tools > Configuration > Goals and Sales > Label > Order status

 

ID

Description

>> This list cannot be modified

0

No information

1

Pending

2

Cancelled

3

Validated

 

Variable name: xt_status

 

PROMO CODE

Value indicator returning a promotion code used for order (optional).

·   Not considered in Confirmation mode.

 

Variable name: xt_promocode

 

SALES TURNOVER INDICATOR

Value indicator returning the sales amount that you want to display in your analyses (Source analyses in particular).

You need to assign a value depending on your needs: it can be the same that Order amount (tax free), or Order amount (tax included), or any calculated value which represents the best your Return Of Investment.

It can be for example a calculation like: jsnum:(xt_totalTF-xt-shipTF)

 

Variable name: xt_roimt

 

Product Selection

Configuration   Platforms   Analysis   Container

image

PRODUCT COLLECTION
Definition

This field must be populated with a nodes selector which retrieves an array of nodes containing all product data.

Two kinds of data structuration can be managed at configuration level, by defining Product Group:

·  Hierarchical
Each Product is contained in one parent node, and product data are contained in its children.
This is the most common case, where Products Collection must retrieve all parent nodes, even if some of them are useless: Product group defines the sequence where this parent node can be found, always at the same place.
Example: A TABLE with sequences of two TR without specific class, one for comment and one for Product data: Collection retrieves all TR, Product group=2.

·  Flat
Each product data is contained in the same node type (value or children), N nodes defining one product. In other words, there’s no parent gathering all fields of one product.
In this case, Product Collection must retrieve all these nodes, and the Product group defines N.
Example: Set of DIV, the first containing the Product ID, the second containing Quantity, the third containing Unit Price, etc... up to five for each Product. Collection retrieves all DIV, Product Group=5.

All other kinds of structuration cannot be handled at configuration level and require using customization API. However, in some cases, a jsnodes: specification can do the job (for example if collection must aggregate several node selectors).

Then, all product fields (indicated with light green header) must be populated with relative value indicators, as described below.

Relative Value Indicator

Whatever the structuration, product value indicators are addressed relatively to their group:

Value indicator

Value retrieved

%n/

Content of nth  node in current group, with: 0 <= n < Product Group (then always 0 if Product Group is 1)
Note: a hierarchical organization is identified by the fact that n is always the same index.

%n/selector

A child node belonging to the nth node in current group (with the same restrictions than above).

js:code

Same as usual js:, but where  code can contain %n retrieved as string.

Example: jstext:(%0+’::‘+%1) >> Concatenation of two nodes content with chapter separator.

jsnum:code

Same as usual jsnum:, but where  code can contain %n retrieved as number.

Example: jsnum:(%0+%1) >> Addition of two nodes values.

jsfunc:myFunction

Same as usual jsfunc: selected node is used as parameter to call myFunction.

Example: %0/H4:[1]/jsfunc:gdl_sales.getNodeProductSKU >> Call this external function to extract Product SKU from the second H4 in current row.

 

PRODUCT START INDEX

Allows to jump first nodes that would not contain any product data. It can be 0 (by default) or a positive integer value.

Example: A collection of TR where the 3 first are used for Order Summary, so that Product Start Index=3.

 

PRODUCT GROUP

Defines the group size. It must be a positive integer value, greater than 0 (1 by default).

It can be used for both organizations:

·   Hierarchical
Greater than 1 only when not all parent nodes contain Product data.
For example if only even nodes must be considered as parent nodes: Group  = 2.

·   Flat
To define the number of nodes (N) defining one and only one product.

 

Product Data

Configuration   Platforms   Analysis   Container

image

PRODUCT ID

Relative value indicator returning the product identifier / sku (mandatory)

 

Variable name: xtp_id

 

PRODUCT DESCRIPTION

Relative value indicator returning the product label

 

Variable name: xtp_desc

 

PRODUCT CATEGORY

Relative value indicator returning the product category

 

Variable name: xtp_cat

 

PRODUCT UNIT PRICE (TAX FREE)

Relative value indicator returning the unit price without any tax.

 

Variable name: xtp_upTF

 

PRODUCT UNIT PRICE (TAX INCLUDED)

Relative value indicator returning the unit price with all tax. Can be the same as previous.

 

Variable name: xtp_upATI

 

Product Sale

Configuration   Platforms   Analysis   Container

image

PRODUCT QUANTITY

Relative value indicator returning a positive integer value greater than 0 (mandatory).

 

Variable name: xtp_qty

 

PRODUCT DISCOUNT (TAX FREE)

Relative value indicator returning the amount deducted from Product sale (tax free), whatever the method.

Example:

Unit price = $100, Quantity = 4.

1.     The product discount is applied to a specific quantity of purchased products, let say $15 discount for 2 products purchased
> Product Discount = $30

2.     The product discount is a percentage of sale, regardless of quantity ordered, let say 10%
> Product Discount = $40

 

Variable name: xtp_discountTF

 

PRODUCT DISCOUNT (TAX INCLUDED)

Relative value indicator returning the amount deducted from Product sale (tax free)

Same principle than above, but all tax included.

 

Variable name: xtp_discountATI

 

PRODUCT PROMO CODE

Relative value indicator returning the promotion code applicable to this product.

 

Variable name: xtp_promocode

 

PRODUCT TOTAL SALE

Relative value indicator returning the amount that must be considered for sales analysis.

It’s up to you deciding if it considers tax or discount.

 

Variable name: xtp_roimt

Videos

Purpose

Configuration   Platforms   Analysis   Container

image

This tab is used to activate YouTube videos tracking. To be automatically tracked, a YouTube video must be embedded as usually recommended, meaning by using an iframe.

Example:

<iframe width="100%" height="100%" src="https://www.youtube.com/embed/sIJ73G4sww?wmode=opaque">
<
/iframe>

 

In iframe src, it’s better adding &enablejsapi=1, but it is automatically added by XTagManager when not present.

 

Fields

PATH PATTERN

Final path pattern. It must identify the page(s) containing videos. If empty or *, all pages will be considered.

 

AREA SELECTOR

See Node(s) Selector. Select the area where videos can be found (XTag Selector “For Area selection”) or let empty to consider all page content.

COMMENT (OPTIONAL)

Type what you want in this column.

 

 

Specific

Purpose

Configuration   Platforms   Analysis   Container

image

Code

Specific code is used to add any JavaScript code or JSON objects in page’s header, like Third-Party can do.

The difference is that there’s no triggering condition nor control: this code is loaded and executed in page as it is, before customization & library inclusions, directly in configuration file (so without using document.write or whatever), then without mapping nor filtering and above all without any exception management.

So keep in mind that any wrong entry in this tab could lead to page errors and/or analytics' breaking. Use cautiously!

It is mainly used to add specific configurations, or to add simple JavaScript routines intended to be called by nodes selectors or value indicators, thus avoiding a customization file. Note that in these cases, such routines will be executed with exception management.

There’s only one column to fill, where an area contains the code to be added. It can be extended by inserting rows inside it.

 

Variables

Up to five variables can be defined here, and then reused anywhere (maps, customization code, names, etc...) with their index, for example: %variable1%.

It is especially useful in master Configurations, allowing regular ones to define some contextual values: master use such variables in their entries, and regular define them.

 

DemandBase fields

By default, this area is used to activate and configure DemandBase feature, by using a JSON structure with the following fields:

Attribute

Setting

Default

StopChecking

true if we want to stop adding DemandBase data to ATI tag

false

Async

true for asynchronous call to DemandBase server (slow websites), false for synchronous.

true

Key

DemandBase key allowing data request

 

StartParam

First ATI site custom variable index that will be used to send data
4
>> use x4 as first site custom variable, then x5, x6, …

1

ExpireDays

Number of days without requesting DemandBase again. If 1, one request will be done per session.

1

Fields

DemandBase data that must be sent to ATI as site custom variable.

 

Map

Array of Arrays (field name, value:map, …): allow conversion of retrieved value into a value recognized by ATI.

 

 

Variables

Specific allows declaring up to five Variables, that can then be reused in any Configuration stuff with %variable[index]%.

Additional mappings

Some legacy containers used Specific to manage additional mappings. XTag Configurator still take them into account, and even sort them automatically at Publication time. However, for any new mapping, it is now recommended using the dedicated feature Lookup Tables

image

 

Includes

Purpose

Configuration   Platforms   Analysis   Container

image

This is the place where you can decide about containers inheritance or additional libraries.

 

Fields

INCLUDE

Enter a JS file that can be found in the Configuration directory, or in the Libraries paths.

 

Third-Party

Purpose

Configuration   Platforms   Analysis   Container

image

This is the container allowing to setup additional tags or inclusions for third party systems, or to write anything in page.

It is recommended to use GTM or TC for third party tags, but as they are unable to add tag in page’s header nor synchronous ones, it can be used when one of both condition is required, or when none of both is set.

 

Fields

ATI SITE ID(S)

Enter the ATI account that must be the current one to raise the added tag. It can be a list separated by |, or a wildcard * to match all.

583046|583057|585769|586138|585773|586131|583059|586130|606710|585774

Note that PreProd Site ID(s) must be added as well to allow tag raising in PreProd mode, or you can add a dedicated entry for it.

Site ID filtering is not allowed on Header tags, except when there is only one production account.

 

PATH

Contrary to all other mappings, it always considers Original Path, but it can also embed the host name if it starts by // instead of /.

As for ATI SITE ID(s), it can be a list separated by |, or a wildcard * to match all.

SYNCHRONOUS CODE

It can be HTML or Javascript code. In both cases, double quotes must be replaced by single ones.

HTML code can be Javascript file inclusion, like this Adobe DTM integration:

<script src='//assets.adobedtm.com/e950cf52ad8cc87cfd4de9bb989d1a2e93e9c8ea/satelliteLib-7fcbb7ed74aaf36079297db84638471fcce292e8.js'></script>

JavaScript code must not contain any comment, nor <script> tags:

_satellite.pageBottom();

 

Synchronous code is executed with exception management.

 

ASYNCHRONOUS LOADED SCRIPT

URL of a JavaScript file to be loaded asynchronously. It is recommended to not specify the protocol (start by //), to be valid for both SSL and regular pages.

//static.atgsvcs.com/js/atgsvcs.js

CODE TO EXECUTE ONCE SCRIPT LOADED

JavaScript code to be executed when asynchronous script file has been loaded. It cannot be a JavaScript inclusion.

raiseATG();

 

Asynchronous code is executed with exception management.

 

ACTIVATION

Enable the tag in Header (where configuration file is included), or Footer (where pageStatInjection() is called) or set it as Disabled.

 

Level 2 Dictionary

Purpose

Configuration   Platforms   Analysis   Container

image

This tab contains the restrictive list of selectable Level 2, with their corresponding names.

 

Fields

The original Level 2 list comes from Configuration Template. For the current Configuration, it can be modified, or extended as following:

1.      On the first blank line, type the number in the first column:

image

2.      Enter or Tab will reorder it in the list:

image

3.      Type its name, as declared in AT Internet:

image

 

Versions

Purpose

Configuration   Platforms   Analysis   Container

image

This tab contains the history of Commits and Publication, with their author.

 

Fields

VERSION

 

DESCRIPTION

 

COMMITTED

 

PUBLISHED

 

AUTHOR

 

 

Test Cases

Purpose

Configuration   Platforms   Analysis   Container

image

This list is used to specify all expected tags and actions to raise them.

Please note this feature is currently under redesign and ascending compatibility will probably not be ensured.

 

Commands

Command

Action

  #  

Generate version worksheet in TestCases_XX.xlsx in configurator’s directory. If this version already exists, you are prompted to confirm that it must be replaced.

If shift key is down when clicked, formatting commands below are kept in generated worksheet.

  Title  

Format current line as Title. Used to name following actions, or to describe an action without tag generation.

  Url  

Format current line as Url. Used to indicate Url displayed for a content tag.

  Action  

Format current line as Action. Used to describe an action generating a tag (click tag, or content tag without Url change).

Each click on formatting commands updates all existing Test cases indexes.

 

Fields

#

Test case index, automatically populated when formatting command is clicked.

 

Title, Url or Action

After formatting the line with corresponding command, type expected indication.

In case of Action, describe the place where it is done. In case of Url, address in automatically truncated from protocol.

 

Account

Account number expected in production.

 

Level 2

Level 2 number expected.

 

Name

Page name or click name (except for Search position click).

 

Click

Select expected click type in the list: Action, Download, Exit, Navigation, Search pos.

 

Search words...

Searched keywords, when current page is a search results page, or current action is a click on search result.

This column and the next two are visible only if Search tracking has been activated in configuration.

 

...page

Page number, when current page is a search results page, or current action is a click on search result.

 

...pos

Position of click, when current page is a search results page, or current action is a click on search result.

 

Visitor ID & Cat.

Numeric visitor ID, if any, and Numeric Visitor category ID, when available.

These columns are visible only if Visitor identification has been activated in configuration.

 

Sales

Two columns that must be populated with Sales parameters (on the left) and expected data (on the right).

image

These columns are visible only if Sales tracking has been activated in configuration.

 


Copyright © 2020, Denis Rousseau - XTagManager