Meta data¶
Introduction¶
The fact that we track an event does not tell us much.
For example, when a pageview is triggered, we only know a pageviews is triggered, but we don’t know thinks like:
- What page was viewed?
- Which user viewed the page?
- When did the user view the page?
- What language was the page?
This information is what we call meta data. The data about the actual event.
Since there can be many different variables, we have chosen to categorize these variables in the following categories. We call these categories variable groups.
Entity/ Web component | Variable group |
---|---|
User | userData |
Session | sessionData |
Event | eventData |
Page | pageData |
Funnelstep | funnelData |
Promotion | promotionData |
Product | productData |
Content | contenData |
Besides these variable groups that are linked to an entity or components, we have two other variable groups.
- consentData
- debugData
Default variables¶
In the next section we discuss each variable group. For each variable group you will also find the default variables. Default variables fall into two categories:
- System defined - This means that Harvest Collect itself retrieves the information.
- User defined - This means that Harvest Collect knows the variable, but the user has to provide it in the datalayer.
For more information about what the datalayer is, read our datalayer documentation.
userData¶
This variable group contains information about the current user.
Variable name | Type | Parameter | Description |
---|---|---|---|
userID | System | A unique ID to identify a visitor anonymously. | |
crossUserIDs | System | This is a list of userIDs from other domains. | |
User | The email address of the user. | ||
hashedEmail | System | harvest_he | The SHA256 hash of the provided email. |
userType | User | The type of user. For example consumer of business | |
userStart | System | The timestamp of the moment the user did it’s first event. | |
hasAdBlock | System | This variables tells us is if the user has AdBlock (0 or 1). Works based on one of our tools. | |
sessionCount | System | The count of sessions the user has done. | |
gaClientID | System | When using Google Analytics, we will obtain the client id and populate this variable. |
Some of these variables are saved in the harvest user cookie.
For more information on how Harvest Collect handles users, can be found in the user management documentation.
For more information about cross domain tracking, read our cross domain tracking documentation.
sessionData¶
This variable group contains information about the current session.
Variable name | Type | Parameter | Description |
---|---|---|---|
sessionUtmSource | System | utm_source | The value of the url parameter utm_source in the url. |
sessionUtmMedium | System | utm_medium | The value of the url parameter utm_medium in the url. |
sessionUtmCampaign | System | utm_campaign | The value of the url parameter utm_campaign in the url. |
sessionUtmContent | System | utm_content | The value of the url parameter utm_content in the url. |
sessionUtmTerm | System | utm_term | The value of the url parameter utm_term in the url. |
sessionGclid | System | gclid | The value of the url parameter gclid in the url. |
sessionID | System | The unique ID to identify a session. | |
sessionReferrer | System | The value of the referrer that resulted in the session. | |
totalEventCount | System | The count of all events the user did in the session. | |
pageviewEventCount | System | The count of pageviews the user did in the session. | |
interactionEventCount | System | The count of all interaction events the user did in the session. | |
medium | System | The parsed medium by Harvest Collect ruling. See for more information session management. | |
source | System | The parsed source by Harvest Collect ruling. See for more information session management. | |
channel | System | The parsed channel by Harvest Collect ruling. See for more information session management. | |
campaign | System | Same value as sessionUtmCampaign. | |
sourceMedium | System | Concatenation of source and medium. For example google / search_paid. | |
referrerIsExcluded | System | Indication whether the referrer was excluded by referral exclusion. Can be 0 or 1. | |
rawReferrer | System | Holds the original referrer when a new session referrer was affected by referral exclusion. | |
isValidReferrerVariables | System | Indication whether correct referrer variables where used. | |
sourceMedium | System | Concatenation of source and medium. For example google / search_paid. | |
sessionStart | System | The timestamp of the moment the current session started. | |
adID | System | harvest_ad_id | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adCampaignID | System | harvest_campaign_id | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adGroupID | System | harvest_adgroup_id | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adKeywordID | System | harvest_keyword_id | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adCreativeID | System | harvest_creative_id | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adRandomNumber | System | harvest_ad_random | Part of the harvest_ad_data parameter or harvest_ad_id parameter. |
adData | System | harvest_ad_data | The value of the parameter harvest_ad_data. |
The harvest_ad_data parameter contains several elements related to ads. It has the following structure:
<channel>:<medium>:<source>:<adID>:<adGroupID>:<adCampaignID>:<adCreativeID>:<adKeywordID>:<adRandomNumber>
When we receive the adData, we will split the variable and set the data of the related variables.
Some of these variables are saved in the harvest session cookie.
For more information on how Harvest Collect handles sessions, can be found in the session management documentation.
eventData¶
This variable group contains information about the current event.
Variable name | Type | Description |
---|---|---|
eventID | System | A unique ID to identify the event. Useful for debugging. |
event | User | The type of event that occured. |
isInteraction | System | 1 if the event is an interaction event. |
isPageview | System | 1 if the event is a pageview event. |
isClick | System | 1 if the event is a click event. |
isContentClick | System | 1 if the event is a click event with clickType contentClick. |
isProductListClick | System | 1 if the event is a click event with clickType productListClick. |
isPromotionClick | System | 1 if the event is a click event with clickType promotionClick. |
isProductAddToCart | System | 1 if the event is a click event with clickType productAddToCart. |
isProductRemoveFromCart | System | 1 if the event is a click event with clickType productRemoveFromCart. |
isProductAddToWishlist | System | 1 if the event is a click event with clickType productAddToWishlist. |
isContentViewEvent | User | 1 if the event is a contentview event. |
isContentView | System | 1 if the event is a contentview event with contentInteractionName Content view. |
isProductListView | System | 1 if the event is a contentview event with contentInteractionName Product list view. |
isProductDetailView | System | 1 if the event is a contentview event with contentInteractionName Product detail view. |
isPromotionView | System | 1 if the event is a contentview event with contentInteractionName Promotion view. |
isChange | System | 1 if the event is a change event. |
isFunnelStepView | System | 1 if the event is a funnelstepview event. |
isDataView | System | 1 if the event is a dataview event. |
isVideoLoaded | System | 1 if the event is a dataview event with contentInteractionName Video loaded. |
isVideoAdStarted | System | 1 if the event is a dataview event with contentInteractionName Video ad started. |
isVideoAdEnded | System | 1 if the event is a dataview event with contentInteractionName Video ad ended. |
isVideoStarted | System | 1 if the event is a dataview event with contentInteractionName Video started. |
isVideoPlayed | System | 1 if the event is a dataview event with contentInteractionName Video played. |
isVideoPaused | System | 1 if the event is a dataview event with contentInteractionName Video paused. |
isVideoEnded | System | 1 if the event is a dataview event with contentInteractionName Video ended. |
isVideoPercentageViewed | System | 1 if the event is a dataview event with contentInteractionName Video percentage viewed. |
videoAdPosition | User | The position of the video ad in the playback. Usually, “pre-roll” or “post-roll”. |
videoType | User | The type of video. |
videoPercentage | User | The percentage of how far a video is viewed. |
videoDuration | User | The total duration of the video. |
videoCurrentTime | User | The current passed time of the video. |
videoPlayer | User | The video player publisher. For example Vimeo or Youtube. |
videoID | User | The ID of the video. |
videoTitle | User | The title of the video. |
videoAuthor | User | The author of the video. |
videoPlayer | User | The video player publisher. For example Vimeo or Youtube. |
isSearch | System | 1 if the event is a dataview event with dataType search. |
isConsentChange | System | 1 if the event is a dataview event with dataType consentChange. |
isCheckoutOption | System | 1 if the event is a dataview event with dataType checkoutOption. |
eventCategory | System | The category of the event. Usually used for Google Analytics. |
eventAction | System | The “action” of the event. Usually used for Google Analytics. |
eventLabel | System | The “label” of the event. Usually used for Google Analytics. |
eventValue | System | The “value” of the event. Usually used for Google Analytics. |
isNonInteraction | System | 1 if the event is not an interaction event. Used for Google Analytics. |
timeStamp | System | Timestamp of the event in ISO 8601 format. |
searchTerm | User | The search term that was used in the search. |
searchCategory | User | The category of the search term or search functionality. |
experimentData | System | This variable holds a list of the experiments and variables active for the user. |
daisyconCallbackData | System | This variable holds information about the callback from Daisycon. |
lastClickedPromotion | System | This variable holds the last clicked promotion during this session. |
lastClickedProductList | System | This variable holds the last clicked product list during this session. |
lastSearch | System | This variable holds the last search during this session. |
conversions | System | This variable holds all triggered conversions. |
harvestVersion | System | The version of Harvest Collect. |
harvestDebugging | System | 1 if Harvest is in debug mode. |
elementValue | User | The value of the input form after the input has changed. |
variableName | User | The variable to which we should set the elementValue. |
lastSearch | System | This variable holds the last used searchTerm and timestamp of the search per searchCategory. |
isTrackDirect | System | A boolean that whether a contentiew, pageview or funnelstepview was triggered data-track-direct. |
viewDuration | System | The number of seconds the element was in the viewport before the contentview was triggered. |
pageData¶
This variable group contains all information about the current page the user is interacting on and with. It is possible to create custom variables that will become part of pageData, but there are also some default variables.
Variable name | Type | Description |
---|---|---|
hostname | System | The hostname of the current page. |
port | System | The port of the current page. |
topLevelDomain | System | The top level domain, for example com in harvest.graindata.com. |
secondLevelDomain | System | The second level domain, for example graindata in harvest.graindata.com. |
thirdLevelDomain | System | The third level domain, for example harvest in harvest.graindata.com. |
pathname | System | The pathname of the current page. |
urlWithoutParameters | System | The protocol + hostname + pathname (no query string parameters and hash) |
protocol | System | The protocol of the current page. |
urlHash | System | The part of the url after the # sign. |
urlHref | System | The complete url of the page. |
pageCategory | User | The category of the page. Hierarchy can be sent like: level1/level2/level3/level4/level5 |
pageLanguage | User | The language of the page. Recommended format is ISO 639-1 |
isLoggedIn | User | This variable tells us whether the user is logged in or not. Recommended values: 0 or 1. |
postID | User | The ID of the page / post. |
postPublishDate | User | The date time when the page / post is published. Recommended format is ISO 8601 |
postCategories | User | List of categories the page / post is in. Object of name and ID. Used by Wordpress. |
postCategoriesNames | User | List of the names of the categories the page / post is in. Used by Wordpress. |
postCategoriesIDs | User | List of the IDs of the categories the page / post is in. Used by Wordpress. |
postTags | User | List of tags the page / post is in. Object of name and ID. Used by Wordpress. |
postTagNames | User | List of the names of the tags the page / post is in. Used by Wordpress. |
postTagIDs | User | List of the IDs of the tags the page / post is in. Used by Wordpress. |
pageCategoryLevel1 | System | When pageCategory is provided, this variable holds the value of level 1. |
pageCategoryLevel2 | System | When pageCategory is provided, this variable holds the value of level 2. |
pageCategoryLevel3 | System | When pageCategory is provided, this variable holds the value of level 3. |
pageCategoryLevel4 | System | When pageCategory is provided, this variable holds the value of level 4. |
pageCategoryLevel5 | System | When pageCategory is provided, this variable holds the value of level 5. |
Post related variables
Some variables are related to posts. Not all pageviews are post, so the variables related to a post should only be sent when the page actually is a post.
We determine the fact that a page is a post based on the existence of the postID.
If no postID exists, we will discard the following variables:
- postTags
- postCategories
- postAuthorID
- postTagsIDs
- postTagsNames
- postCategoriesIDs
- postCategoriesNames
- postPublishDate
The postPublishDate is required for events that contain the postID. If this variable is not provided, the event will result in an error.
postPublishDate
The post publish date should always be formatted according the ISO 8601 format. For more information: https://www.w3.org/TR/NOTE-datetime. If you do not use this format, the event in which the postPublishDate is sent, will result in an error.
funnelData¶
This variable group contains all information about the current funnelstep. This is relevant for the funnelstepview event and also in some cases for the dataview event.
Variable name | Type | Description |
---|---|---|
funnelName | User | The name of the funnel the step is part of. |
funnelStep | User | The name of the step that is triggered. |
funnelStepIndex | System | The index of the step in the funnel. For example 1 for the first step. |
isStartFunnelStep | System | 1 if this is the first step in the funnel, otherwise 0. |
isLastFunnelStep | System | 1 if this is the last step in the funnel, otherwise 0. |
funnelStepType | System | The type of funnelStep. |
transactionRevenue | User | The total revenue of a transaction. This includes VAT and shipping. |
transactionID | User | The ID of the transaction. |
transactionTax | User | The tax of the transaction. |
transactionShipping | User | The shipping costs of the transaction. |
transactionDiscount | User | The amount of discount of the transaction. |
transactionVoucher | User | The voucher that is used for discount with the transaction. |
transactionAffiliation | User | This can be used to see which part of the company did the transaction. |
checkoutOption | User | The option the user used during a checkout step. |
checkoutOptionValue | User | The value of the option the used used during a checkout step. |
cartValue | System | The value of the cart during checkout steps. |
cartNumItems | System | The number of items in the cart during checkout steps. |
funnelVariant | User | The variant of the funnel the user was in. |
transactionStartDateTime | User | The timestamp of when the purchased good starts, for example when a show starts. ISO 8601. |
transactionEndDateTime | User | The timestamp of when the purchased good starts, for example when a show ends. ISO 8601. |
previousStepSession | System | The previous funnelstep the user interacted with in this session with this funnel. |
previousStepUser | System | The previous funnelstep the user interacted with this funnel. |
isCheckout | System | Metric to indicate whether the step was part of checkout. |
isPurchase | System | Metric to indicate whether the step was a purchase. |
transactionActions | User | Array of actions related to the transaction. For example: Placement, Payment and Refund. |
paymentMethod | User | The method used to do the transaction Payment. |
isTransactionPlacement | System | Metric to indicate whether the transaction action was placement. |
isTransactionPayment | System | Metric to indicate whether the transaction action was payment. |
isTransactionRefund | System | Metric to indicate whether the transaction action was refund. |
isTransactionCancellation | System | Metric to indicate whether the transaction action was cancellation. |
paymentValue | User | The total value of the payment. |
refundValue | User | The total value of the refund. |
cancellationValue | User | The total value of the cancellation. |
Required variables
Both the funnelName and funnelStep are mandatory.
When tracking a transaction, the transactionID is mandatory.
More information about funnelsteps can be found in the funnelstep documentation.
productData¶
When tracking a contentview or click for a product. We will track the array of products the contentview and click is relevant for. For more information about which type of click and contentview are related to products, read our content related interactions documentation.
Products are also related to funnelsteps that are related to checkout or purchase. For more information, read the funnelstep type documentation.
The products have the following variables:
Variable name | Type | Description |
---|---|---|
id | User | The id of the product. |
name | User | The name of the product. |
price | User | The price of the product. |
category | User | The category of the product. Hierarchy can be filled in. Each level divided by a “/”. |
quantity | User | The quantity of the product. |
variant | User | The variant of the product. |
brand | User | The brand of the product. |
voucher | User | The voucher that is used for the product. |
discount | User | The discount of the product. |
position | User | The position of the product in the product list. |
list | User | The name of the list the product was viewed or clicked in. |
tax | User | The total value of tax for the product. |
refundValue | User | The total value that was refunded. |
cancellationValue | User | The total value that was cancelled. |
subscriptionID | User | The ID of the subscription. |
subscriptionIntervals | User | The amount of base intervals the subscription takes. |
subscriptionIntervalValue | User | The total value that was cancelled. |
paymentValue | User | The value that was paid for the subscription. |
paymentMethod | User | The payment method used to do the payment. |
subscriptionActions | User | The actions in the event related to the subscription. |
isSubscriptionRequest | System | This variable tells us whether this event was a subscription request. |
isSubscriptionPayment | System | This variable tells us whether this event was a subscription payment. |
isSubscriptionRejection | System | This variable tells us whether this event was a subscription rejection. |
isSubscriptionCancellation | System | This variable tells us whether this event was a subscription cancellation. |
isSubscriptionChange | System | This variable tells us whether this event was a subscription change. |
isSubscriptionAcceptation | System | This variable tells us whether this event was a subscription acceptation. |
isSubscriptionProlongation | System | This variable tells us whether this event was a subscription prolongation. |
Required variables
Either the id or name is required.
For more information on how to use these variables, read the products, promotions and contents documentation.
promotionData¶
We use promotionData when tracking promotions. We will track the array of promotions the contentview and click is relevant for. For more information about which type of click and contentview are related to promotions, read our content related interactions documentation.
The promotions have the following variables:
Variable name | Type | Description |
---|---|---|
id | User | The id of the promotion. |
name | User | The name of the promotion. |
creative | User | The creative in the promotion element. |
position | User | The position of the promotion in for example a list. The value is numerical index. |
Required variables
Either the id or name is required.
For more information on how to use these variables, read the products, promotions and contents documentation.
contentData¶
When tracking a contentview or click for a content element (not a product or promotion). We will track the array of contents the contentview and click is relevant for. For more information about which type of click and contentview are related to contents, read our content related interactions documentation.
The content elements have the following variables:
Variable name | Type | Description |
---|---|---|
id | User | The id of the content element. |
name | User | The name of the content element. |
type | User | The type of the content element. |
variant | User | The variant of the content element. |
position | User | The position of the content element in for example a list. The value is numerical index. |
Required variables
Either the id or name is required.
For more information on how to use these variables, read the products, promotions and contents documentation.
consentData¶
This variable group contains the information about the (cookie) consent a user has given.
Variable name | Type | Description |
---|---|---|
ID | System | The ID of the given consent. |
isSensitive | System | A “1” when we are on a sensitive page and “0” if we are not. |
createdAt | System | The timestamp of the moment the consent was created. ISO 8601. |
cookiePresent | System | A “1” when the consent cookie was present and “0” if we are not. |
permissions | System | The object that contains the permissions the user has given. |
defaultPermissions | System | The object that contains the default permissions. Used when we are on a sensitive page. |
For more information about consent data, read our cookie consent documentation.
debugData¶
This variable group contains information about the user’s device and other information that is relevant for debugging purposes.
We have divided debugData in two types of debugData.
userAgentData
User agent data contains all information about the user agent.
Variable name | Type | Description |
---|---|---|
browser | System | An object with information about the browser. name, major version, detailed version. |
device | System | The type of device the user is on. Tablet, mobile or desktop. |
language | System | The language of the browser. |
os | System | An object with information about the operating system. name and version. |
ua | System | The complete user agent string. |
screenData
Screen data contains information about the screen of the user.
Variable name | Type | Description |
---|---|---|
height | System | The height of the screen. |
width | System | The width of the screen. |
viewPortTop | System | The amount of pixels the viewport is from the top of the page. |
viewPortWidth | System | The width of the current browser screen. |
viewPortHeight | System | The height of the current browser screen. |
isTouchDevice | System | “1” if it is a touch screen. “0” if not. |