|
|
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. |
Initial or Customized Path Root.
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. |
Type a declared ATI Site ID. You can pick one from Sites List.
Automatically populated when ATI Site ID has been recognized.
|
|
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.
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 |
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.
In this column, you can specify for all URL matching specified Path:
|
A constant page name, that will replace computed name in all cases. |
|
An exclamation mark (!), to exclude page from tagging (Level 2 column will be ignored). |
|
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 |
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.
|
|
When there are multiple non-production platforms that must be followed independently, or/and multiple production platforms, PreProd allows to configure each of them.
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.
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).
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 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). |
Automatically populated when ATI preview account has been recognized.
|
|
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.
Value indicator returning Site Custom Variable.
Set the corresponding index, as declared in AT Internet.
Type what you want in this field, usually the description of variable’s aim.
|
|
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.
Value indicator returning Page Custom Variable.
Set the corresponding index, as declared in AT Internet.
Type what you want in this field, usually the description of variable’s aim.
Define the click trackers. When Components mode is activated, such definitions are considered after Components ones, only for nodes still not tracked.
|
|
Set up the clicks that must be tracked as downloads.
See Fields below.
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.
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.
Set up the links that must be tracked as actions. Action tracking allows other events type than clicks (mouseover, submit, change, ...).
See Fields below.
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. Retrieve a collection of ascendants, or directly the selected nodes when NODE TYPE matches the selector leaf.
The Filter select only nodes matching attributes condition. href is used by default when attribute name is not mentioned.
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.
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 |
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 is optional: if nothing’s specified, standard naming rules will be applied, see click tag name.
It can be:
|
A constant name, which will replace standard name in all cases. |
|
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 |
Node’s attribute value
or, when
doesn’t exist: link target parameter |
#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. |
# |
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. |
<selector>#attribute |
Attribute value from node retrieved by
a node selector. |
!... |
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.
Constant name
|
|
Click name |
Raised tag name |
schneiderele.taleo.net-Search Job |
schneiderele.taleo.net-Search Job |
Current page (content tag) |
Click name |
Raised tag name |
home |
::se_tv |
home::se_tv |
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 |
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::twitter.com/SchneiderElec |
||
Exit (S) |
header::%h |
header::twitter.com |
#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.
|
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::#name |
Footer::myClass::myName |
Menu::#href |
|
Teaser::# |
Teaser::Target text |
#title:: |
myTitle::target |
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 |
Specify the node type to be selected (DIV, BUTTON, INPUT...). When omitted, links nodes (A) are selected.
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 |
|
|
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).
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. Retrieve a collection of ascendants, or directly the selected nodes when NODE TYPE matches the selector leaf.
See FILTERS.
See NODE TYPE.
See HTML EVENT.
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.
Define the value of $t for each type. Use an exclamation mark ! to indicate this component must not be used with the corresponding type.
|
|
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
Value indicator returning Visitor ID.
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); |
|
|
The configurator allows to setup search tracking without changing page content, neither tracking code nor data layer.
Final path pattern. It must identify the search result page(s).
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.
Same filtering syntax than Click & Events FILTERS.
Value indicator returning the keyword(s) that leaded to the current result page. If there are several keywords, they must be separated by spaces.
Value indicator returning the index of current result page, based 1.
0 means “Search Without Results”.
Value indicator returning the number of results per page.
Value indicator returning the number of links contained in one result, 1 by default.
It is important for Click Search Position calculation.
Type what you want in this column.
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 |
|
|
|
|
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. |
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 |
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
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 |
· This is the path where order data or cart content can be found.
· This information is mandatory in all modes.
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
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
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
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
|
|
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
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
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
|
|
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
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
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
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
|
|
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
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
Value indicator returning a promotion code used for order (optional).
· Not considered in Confirmation mode.
Variable name: xt_promocode
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
|
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.
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) |
%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. |
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.
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.
|
Relative value indicator returning the product identifier / sku (mandatory)
Variable name: xtp_id
Relative value indicator returning the product label
Variable name: xtp_desc
Relative value indicator returning the product category
Variable name: xtp_cat
Relative value indicator returning the unit price without any tax.
Variable name: xtp_upTF
Relative value indicator returning the unit price with all tax. Can be the same as previous.
Variable name: xtp_upATI
|
Relative value indicator returning a positive integer value greater than 0 (mandatory).
Variable name: xtp_qty
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
2. The product discount is a percentage
of sale, regardless of quantity ordered, let say 10% |
Variable name: xtp_discountTF
Relative value indicator returning the amount deducted from Product sale (tax free)
Same principle than above, but all tax included.
Variable name: xtp_discountATI
Relative value indicator returning the promotion code applicable to this product.
Variable name: xtp_promocode
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
|
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"> |
In iframe src, it’s better adding &enablejsapi=1, but it is automatically added by XTagManager when not present. |
Final path pattern. It must identify the page(s) containing videos. If empty or *, all pages will be considered.
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.
Type what you want in this column.
|
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.
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.
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 |
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. |
|
Specific allows declaring up to five Variables, that can then be reused in any Configuration stuff with %variable[index]%.
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
|
This is the place where you can decide about containers inheritance or additional libraries.
Enter a JS file that can be found in the Configuration directory, or in the Libraries paths.
|
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.
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. |
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.
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. |
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 |
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. |
Enable the tag in Header (where configuration file is included), or Footer (where pageStatInjection() is called) or set it as Disabled.
|
This tab contains the restrictive list of selectable Level 2, with their corresponding names.
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:
2. Enter or Tab will reorder it in the list:
3. Type its name, as declared in AT Internet:
|
This tab contains the history of Commits and Publication, with their author.
|
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.
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.
Test case index, automatically populated when formatting command is clicked.
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 number expected in production.
Level 2 number expected.
Page name or click name (except for Search position click).
Select expected click type in the list: Action, Download, Exit, Navigation, Search pos.
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 number, when current page is a search results page, or current action is a click on search result.
Position of click, when current page is a search results page, or current action is a click on search result.
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. |
Two columns that must be populated with Sales parameters (on the left) and expected data (on the right).
These columns are visible only if Sales tracking has been activated in configuration. |
Copyright © 2020, Denis Rousseau - XTagManager