Travel - QProtocol events
Travel - QProtocol events
This is for:
DevelopertrView
Experimentation Hub Core
The trView
event reports a page view and is a special event because it is required by smartserve.js for data collection and processing.
It’s therefore essential that every page emits an trView
event and that it is emitted before any other event.
Any CEH events emitted before the first |
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
type (String) |
The type of view. Can be one of |
|
subtypes (String[]) |
An unordered list of subtypes to describe the view. |
|
environment (String) |
Reports the environment (for example, development, staging, or production) |
|
language (String) |
The language used in this view. Must be an IETF language code. |
|
country (String) |
The selected country for the view. Must be an ISO 3166-1 alpha-2 code. |
|
siteVersion (String) |
The selected site version for the view (for example, desktop, mobile, tablet) |
|
currency (String) |
The ISO 4217 currency code for the user (for example, |
|
Example JavaScript
uv.emit('trView', {
type: null,
subtypes: [
'Holidays',
'All Inclusive',
'Luxury'
],
environment: 'production',
language: 'en-us',
country: 'US',
siteVersion: 'desktop',
currency: 'USD'
})
trPackageTransactionSummary
Experimentation Hub Core
Should be emitted for every package the user has transacted.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
transaction.id (String) |
An Id unique to the transaction |
|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
transaction.firstTransaction (Boolean) |
True only if this is the first ever transaction for the user |
|
transaction.paymentType (String) |
The type of payment |
|
transaction.billingAddress.addressee (String) |
Full name of the person for whom the address is for |
|
transaction.billingAddress.company (String) |
The name of the company |
|
transaction.billingAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
transaction.billingAddress.locality (String) |
The town or city |
|
transaction.billingAddress.region (String) |
E.g state in the US, county in the UK |
|
transaction.billingAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
transaction.billingAddress.country (String) |
The name of the country |
|
transaction.billingAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
transaction.parentId (String) |
If the transaction is an amendment to a previous transaction, should be the Id of the parent transaction |
|
Example JavaScript
uv.emit('trPackageTransactionSummary', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
transaction: {
id: '83748372',
firstTransaction: true,
paymentType: 'paypal',
billingAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
parentId: '83748371'
}
})
trUser
Optional
User
events report metadata associated with a user.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
user.id (String) |
A unique user Id. Can also be a hash of the username and/or email address |
|
user.title (String) |
The user’s title |
|
user.firstName (String) |
The user’s first name |
|
user.lastName (String) |
The user’s last name |
|
user.gender (String) |
The user’s gender. Can be |
|
user.username (String) |
The username for the user |
|
user.email (String) |
The user’s primary email address |
|
user.firstSession (Boolean) |
True if it’s the user’s first session |
|
user.hasTransacted (Boolean) |
True if the user has completed 1 or more transactions |
|
user.loyalty.id (String) |
Loyalty program membership number |
|
user.loyalty.tier (String) |
The level of the loyalty program this user holds |
|
user.loyalty.tierPoints (Number) |
The number of tier points |
|
user.loyalty.membershipType (String) |
The type of loyalty membership |
|
user.loyalty.membershipPoints (Number) |
The number of points from this membership |
|
user.address.addressee (String) |
Full name of the person for whom the address is for |
|
user.address.company (String) |
The name of the company |
|
user.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
user.address.locality (String) |
The town or city |
|
user.address.region (String) |
E.g state in the US, county in the UK |
|
user.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
user.address.country (String) |
The name of the country |
|
user.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
user.isGuest (String) |
True if the user is a guest user without a registered account |
|
user.age (Number) |
The user’s age in years |
|
user.phoneNumber (String) |
The user’s phone number. Should be formatted without spaces, braces, or hyphens |
|
user.countryCallingCode (String) |
The country calling code for the given phone number, formatted to include the |
|
user.device (String) |
Device the user is browsing on - for example |
|
Example JavaScript
uv.emit('trUser', {
user: {
id: '2861102bace6e6620948564f0ce0a7cd',
title: 'Mr',
firstName: 'John',
lastName: 'Smith',
gender: 'Male',
username: 'JohnSmith',
email: 'john@johnsmith.com',
firstSession: null,
hasTransacted: true,
loyalty: {
id: '8989752-223',
tier: 'silver',
tierPoints: null,
membershipType: 'Clearsky Rewards',
membershipPoints: null
},
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
isGuest: 'true',
age: 42,
phoneNumber: '2121234567',
countryCallingCode: '1',
device: 'kiosk'
}
})
trCheckIn
Optional
Emitted when a user checks in.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
bookingId (String) |
Booking ID for this check in, usually a PNR. |
|
numberOfAdults (Number) |
The number of adults. |
|
numberOfChildren (Number) |
The number of children. |
|
numberOfInfants (Number) |
The number of infants. |
|
numberOfStudents (Number) |
The number of students. |
|
numberOfTeenagers (Number) |
The number of Teenagers. |
|
totalNumber (Number) |
The total number of travellers. |
|
seats (String[]) |
The seats selected during check in. |
|
journey.id (String) |
Should be an ID unique to the journey. |
|
journey.journeyType (String) |
The type of a journey, whether it’s in or outbound. |
|
journey.journeyLeg (Number) |
The order of the journey leg. If only one leg in this journey it should be 1. |
|
journey.originName (String) |
The origin location name. |
|
journey.originCode (String) |
The origin code, IATA for airports. |
|
journey.destinationName (String) |
The destination location name. |
|
journey.destinationCode (String) |
The destination code, IATA for airports. |
|
journey.operator (String) |
The operator the journey is with. |
|
journey.departureTs (Epochtimems) |
The departure epoch time in milliseconds. |
|
journey.departureTimezoneOffset (Number) |
The departure timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120) |
|
journey.arrivalTs (Epochtimems) |
The arrival epoch time in milliseconds. |
|
journey.arrivalTimezoneOffset (Number) |
The arrival timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120). |
|
journey.travelTime (Number) |
The total time to get from origin to destination in minutes. |
|
journey.stops (Number) |
The number of stops required to get to the destination. 0 for direct flights. |
|
journey.isFinalLeg (Boolean) |
Whether this part of the journey is the final leg. |
|
journey.fare (String) |
The fare class chosen for this journey. |
|
journey.originCountry (String) |
The origin location country. |
|
journey.destinationCountry (String) |
The destination country. |
|
journey.stopCodes (String[]) |
The destination codes of the stopovers. |
|
journey.stopOperators (String[]) |
The operators of the journeys between the stopovers. |
|
journey.vesselType (String) |
Indicates the journey leg’s vessel type. |
|
journey.availableSeats (Number) |
Indicates the number of available seats on the journey leg, at the time of the event. |
|
Example JavaScript
uv.emit('trCheckIn', {
bookingId: 'PK1E8U',
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
numberOfStudents: 2,
numberOfTeenagers: 2,
totalNumber: 9,
seats: [
'11E',
'11F'
],
journey: {
id: 'FL0989',
journeyType: 'inbound',
journeyLeg: 2,
originName: 'John F. Kennedy International',
originCode: 'JFK',
destinationName: 'Los Angeles International',
destinationCode: 'LAX',
operator: 'American Airlines',
departureTs: 1454585859331,
departureTimezoneOffset: -120,
arrivalTs: 1454595869331,
arrivalTimezoneOffset: -420,
travelTime: 360,
stops: 2,
isFinalLeg: true,
fare: 'Premium Cabin',
originCountry: 'France',
destinationCountry: 'Brazil',
stopCodes: [
'JFK',
'LHR'
],
stopOperators: [
'Amazing Airlines',
'Cool Airways',
'Flying Airlines'
],
vesselType: 'A321',
availableSeats: 45
}
})
trError
Optional
Emitted for every error.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
code (String) |
The error code. |
|
message (String) |
The error message. |
|
Example JavaScript
uv.emit('trError', {
code: null,
message: null
})
trFilterCriteria
Optional
Emitted once or more on listing and search result views in order to report the filters applied and the sorting.
On search views, the event is emitted with the name search
, operator equal
and value
as the search query.
On category views, for each category the view falls under, the event is emitted with the name category
, operator equal
and value
the category name for each category.
Ranges are modeled by emitting the upper and lower bound as separate filter criteria events, setting the operator as greater than
or less than
.
When visitors add, remove or change a filter, a new view event is emitted followed by all FilterCriteria
that are still active after the change.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
summary.pagination (Number) |
The number of items shown per page to the visitor. |
|
summary.resultCount (Number) |
The number of items that match the current query and/or filters. Should be more than or equal to the number of items shown to the visitor. |
|
summary.layout (String) |
The user’s chosen visual layout of the listing (for example, |
|
summary.sortBy (String) |
The sort column. |
|
summary.sortDirection (String) |
The sort direction, that is, |
|
name (String) |
The name of criteria (for example, |
|
operator (String) |
Can be |
|
value.boolean (Boolean) |
Should only be populated if the type is 'Boolean'. |
|
value.integer (String) |
Should only be populated if the type is 'Integer'. |
|
value.long (Long) |
Should only be populated if the type is 'Long'. |
|
value.float (Number) |
Should only be populated if the type is 'Float'. |
|
value.timestamp (Epochtimems) |
Should only be populated if the type is 'EpochTimeMs'. |
|
value.money (Number) |
Should only be populated if the type is 'Money'. |
|
value.currency (String) |
Should only be populated if the type is 'Currency'. |
|
value.email (String) |
Should only be populated if the type is 'Email'. |
|
value.url (String) |
Should only be populated if the type is 'URL'. |
|
value.string (String) |
Should only be populated if the type is 'String'. |
|
value.text (String) |
Should only be populated if the type is 'Text'. |
|
value.date (Date) |
Should only be populated if the type is 'Date'. |
|
value.json (Json) |
Should only be populated if the type is 'JSON'. |
|
Example JavaScript
uv.emit('trFilterCriteria', {
summary: {
pagination: 20,
resultCount: 65,
layout: 'grid',
sortBy: 'price',
sortDirection: 'descending'
},
name: 'airlines',
operator: 'equal',
value: {
'boolean': true,
integer: '10',
'long': 1238902625,
'float': 5.5,
timestamp: 1455748626070,
money: 9.99,
currency: 'USD',
email: 'john.smith@gmail.com',
url: 'http://demo.qubitproducts.com',
string: 'This is some text',
text: 'This is some longer text',
date: '2016-05-20T17:33:45+00:00',
json: '{"key":"value","anotherKey":123,"yetAnotherKey":{"subKey":true}}'
}
})
trFormSubmission
Optional
Should be emitted when a user submits a form.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
submissionId (String) |
A unique Id to identify the form submission. |
|
name (String) |
The name of the form. |
|
Example JavaScript
uv.emit('trFormSubmission', {
submissionId: null,
name: 'ContactUsEnquiry'
})
trInteraction
Optional
Emitted to track visitor interaction for certain elements on the page. These events are not emitted for all interactions on all elements, only those that are of interest.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
type (String) |
The interaction type (for example, click, view, hover, download, share) |
|
name (String) |
A meaningful name unique to the event. |
|
Example JavaScript
uv.emit('trInteraction', {
type: 'click',
name: 'TopNavHomeButton'
})
trPackageCheckoutSummary
Optional
Should be emitted for user’s package/basket during the checkout process.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
step (String) |
The current step of the checkout process. |
|
Example JavaScript
uv.emit('trPackageCheckoutSummary', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
step: 'Payment Details'
})
trPackageItem
Optional
Should be emitted for each package item shown on a listing or detail page.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
eventType (String) |
The type of package item event (for example, 'listing', 'detail', or 'linked_product') |
|
packageItem.id (String) |
Should be an ID unique to the package item. |
|
packageItem.price (Price) |
The price of the package item after discounts. |
|
packageItem.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.price.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.journey.id (String) |
Should be an ID unique to the journey. |
|
packageItem.journey.journeyType (String) |
The type of a journey, whether it’s in or outbound. |
|
packageItem.journey.journeyLeg (Number) |
The order of the journey leg. If only one leg in this journey it should be 1. |
|
packageItem.journey.originName (String) |
The origin location name. |
|
packageItem.journey.originCode (String) |
The origin code, IATA for airports. |
|
packageItem.journey.destinationName (String) |
The destination location name. |
|
packageItem.journey.destinationCode (String) |
The destination code, IATA for airports. |
|
packageItem.journey.operator (String) |
The operator the journey is with. |
|
packageItem.journey.departureTs (Epochtimems) |
The departure epoch time in milliseconds. |
|
packageItem.journey.departureTimezoneOffset (Number) |
The departure timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120) |
|
packageItem.journey.arrivalTs (Epochtimems) |
The arrival epoch time in milliseconds. |
|
packageItem.journey.arrivalTimezoneOffset (Number) |
The arrival timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120). |
|
packageItem.journey.travelTime (Number) |
The total time to get from origin to destination in minutes. |
|
packageItem.journey.stops (Number) |
The number of stops required to get to the destination. 0 for direct flights. |
|
packageItem.journey.isFinalLeg (Boolean) |
Whether this part of the journey is the final leg. |
|
packageItem.journey.fare (String) |
The fare class chosen for this journey. |
|
packageItem.journey.originCountry (String) |
The origin location country. |
|
packageItem.journey.destinationCountry (String) |
The destination country. |
|
packageItem.journey.stopCodes (String[]) |
The destination codes of the stopovers. |
|
packageItem.journey.stopOperators (String[]) |
The operators of the journeys between the stopovers. |
|
packageItem.journey.vesselType (String) |
Indicates the journey leg’s vessel type. |
|
packageItem.journey.availableSeats (Number) |
Indicates the number of available seats on the journey leg, at the time of the event. |
|
packageItem.accommodation.id (String) |
Should be an ID unique to the accommodation. |
|
packageItem.accommodation.name (String) |
The name of the accommodation. |
|
packageItem.accommodation.brand (String) |
The brand of the accommodation. |
|
packageItem.accommodation.rating (String) |
The rating of the accommodation. |
|
packageItem.accommodation.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
packageItem.accommodation.stars (Number) |
The number of stars awarded to the accommodation. |
|
packageItem.accommodation.address.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.accommodation.address.company (String) |
The name of the company |
|
packageItem.accommodation.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.accommodation.address.locality (String) |
The town or city |
|
packageItem.accommodation.address.region (String) |
E.g state in the US, county in the UK |
|
packageItem.accommodation.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.accommodation.address.country (String) |
The name of the country |
|
packageItem.accommodation.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.accommodation.boardBasis (String) |
Board basis. |
|
packageItem.accommodation.maxOccupancy (Number) |
Maximum number of occupants for the accommodation. |
|
packageItem.accommodation.travelLocation.country (String) |
The country of the location. |
|
packageItem.accommodation.travelLocation.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.accommodation.travelLocation.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.accommodation.travelLocation.locality (String) |
The town or city. |
|
packageItem.accommodation.travelLocation.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.accommodation.travelLocation.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.ancillary.ancillaryType (String) |
The type of the ancillary. |
|
packageItem.ancillary.insurance.id (String) |
Should be an ID unique to the insurance ancillary. |
|
packageItem.ancillary.insurance.type (String) |
The type of the insurance. |
|
packageItem.ancillary.insurance.coverage (Number) |
The number of insurance policies booked (for example, if travel insurance policies were selected for 2 people, this would be 2) |
|
packageItem.ancillary.luggage.id (String) |
Should be an ID unique to the luggage ancillary. |
|
packageItem.ancillary.luggage.type (String) |
The type of the luggage. |
|
packageItem.ancillary.luggage.weight (Number) |
The max weight of the luggage ancillary, in kilograms. |
|
packageItem.ancillary.meal.id (String) |
Should be an ID unique to the meal ancillary. |
|
packageItem.ancillary.meal.type (String) |
The type of the meal. |
|
packageItem.ancillary.parking.id (String) |
Should be an ID unique to the parking ancillary. |
|
packageItem.ancillary.parking.type (String) |
The type of the parking booking. |
|
packageItem.ancillary.parking.duration (Number) |
The duration of the parking booking in days. |
|
packageItem.ancillary.seats.id (String) |
Should be an ID unique to the seat ancillary. |
|
packageItem.ancillary.seats.type (String) |
The type of the seat booking. |
|
packageItem.ancillary.seats.tier (String) |
The seating class. |
|
packageItem.ancillary.seats.seatNumber (String[]) |
The booked seat numbers. |
|
packageItem.ancillary.transfers.id (String) |
Should be an ID unique to the transfer ancillary. |
|
packageItem.ancillary.transfers.type (String) |
The type of the transfer. |
|
packageItem.ancillary.transfers.origin (String) |
The pick up point of the transfer. |
|
packageItem.ancillary.transfers.originTs (Epochtimems) |
The pick up time of the transfer. |
|
packageItem.ancillary.transfers.destination (String) |
The drop off point of the transfer. |
|
packageItem.ancillary.transfers.returnTime (Epochtimems) |
The time of the return pick up |
|
packageItem.ancillary.transfers.passengers (Number) |
The amount of passengers that are going to use the transfer. |
|
packageItem.ancillary.transfers.isReturnTransfer (Boolean) |
Whether the transfer is return. |
|
packageItem.ancillary.transfers.vendor (String) |
The organization executing the transfer |
|
packageItem.ancillary.vehicleRental.id (String) |
Should be an ID unique to the vehicle rental ancillary. |
|
packageItem.ancillary.vehicleRental.type (String) |
The type of the rental. |
|
packageItem.ancillary.vehicleRental.origin (String) |
The pick up point of the rental. |
|
packageItem.ancillary.vehicleRental.originTs (Epochtimems) |
The pick up time of the rental. |
|
packageItem.ancillary.vehicleRental.dropOff (Epochtimems) |
The time of the return pick up. |
|
packageItem.ancillary.vehicleRental.dropOffTs (String) |
The drop off point of the rental. |
|
packageItem.ancillary.vehicleRental.passengers (Number) |
The amount of passengers that are going to use the rental. |
|
packageItem.ancillary.vehicleRental.vendor (String) |
The organization executing the transfer. |
|
packageItem.ancillary.vehicleRental.driverAgeThreshold (Number) |
The age threshold required for the driver to rent the vehicle. |
|
packageItem.ancillary.vehicleRental.isDriverOverThreshold (Boolean) |
Indicates if driver’s age is greater than |
|
packageItem.ancillary.vehicleRental.originAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.originAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.originAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.originAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.originAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.originAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.originAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.originAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.vehicleRental.dropoffAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.dropoffAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.dropoffAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.dropoffAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.dropoffAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.dropoffAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.pet.id (String) |
Should be an ID unique to pet ancillary. |
|
packageItem.ancillary.pet.type (String) |
The type of pet. |
|
packageItem.ancillary.lounge.id (String) |
Should be an ID unique to the lounge ancillary |
|
packageItem.ancillary.lounge.name (String) |
The name of the lounge. |
|
packageItem.ancillary.wifi.id (String) |
Should be an ID unique to wifi ancillary |
|
packageItem.ancillary.priority.id (String) |
Should be an ID unique to the priority ancillary. |
|
packageItem.ancillary.priority.type (String) |
The type of priority this ancillary gives. |
|
packageItem.ancillary.sportsEquipment.id (String) |
Should be an ID unique to the sports equipment ancillary. |
|
packageItem.ancillary.sportsEquipment.type (String) |
The type of sports equipment. |
|
packageItem.ancillary.donation.id (String) |
Should be an ID unique to the donation ancillary. |
|
packageItem.ancillary.towel.id (String) |
Should be an ID unique to the towel ancillary. |
|
packageItem.packageItemType (String) |
Describes the type of package item, whether it is a journey, accommodation or ancillary item. |
|
packageItem.originalPrice (Price) |
The original price of the package item. |
|
packageItem.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.onSale (Boolean) |
Is item on sale? |
|
packageItem.experience.id (String) |
Should be an ID unique to the experience. |
|
packageItem.experience.name (String) |
The name of the experience. |
|
packageItem.experience.location.country (String) |
The country of the location. |
|
packageItem.experience.location.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.experience.location.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.experience.location.locality (String) |
The town or city. |
|
packageItem.experience.location.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.experience.location.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.experience.startTs (Epochtimems) |
The experience commencement epoch time in milliseconds. |
|
packageItem.experience.endTs (Epochtimems) |
The experience conclusion epoch time in milliseconds. |
|
packageItem.experience.duration (Number) |
The total duration of the experience in minutes. |
|
subtotal (Price) |
The price of the package item excluding tax and discounts. |
|
subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
discount (Price) |
The amount discounted from vouchers or promotions for the package item. |
|
discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
discount.currency (String) |
The ISO 4217 currency (for example, |
|
subtotalIncludingTax (Price) |
The total cost of the package item including tax, excluding discounts. |
|
subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
index (Number) |
The index of the package item as it’s positioned on the page (for example, the first package item in a listing would be 0, the next would be 1) |
|
quantity (Number) |
The number of items described by the line item. |
|
Example JavaScript
uv.emit('trPackageItem', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
eventType: 'detail',
packageItem: {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
journey: {
id: 'FL0989',
journeyType: 'inbound',
journeyLeg: 2,
originName: 'John F. Kennedy International',
originCode: 'JFK',
destinationName: 'Los Angeles International',
destinationCode: 'LAX',
operator: 'American Airlines',
departureTs: 1454585859331,
departureTimezoneOffset: -120,
arrivalTs: 1454595869331,
arrivalTimezoneOffset: -420,
travelTime: 360,
stops: 2,
isFinalLeg: true,
fare: 'Premium Cabin',
originCountry: 'France',
destinationCountry: 'Brazil',
stopCodes: [
'JFK',
'LHR'
],
stopOperators: [
'Amazing Airlines',
'Cool Airways',
'Flying Airlines'
],
vesselType: 'A321',
availableSeats: 45
},
accommodation: {
id: 'AC221144',
name: 'Hilton',
brand: 'Hilton Hotels & Resorts',
rating: '4',
normalizedRating: 0.4,
stars: 4,
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
boardBasis: 'All Inclusive',
maxOccupancy: 4,
travelLocation: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
}
},
ancillary: {
ancillaryType: 'insurance',
insurance: {
id: 'INS1234',
type: 'Travel Insurance',
coverage: 2
},
luggage: {
id: 'LUG123',
type: 'Carry on',
weight: 32
},
meal: {
id: 'MEAL123',
type: 'Child Menu'
},
parking: {
id: 'PARK123',
type: 'Valet parking',
duration: 10
},
seats: {
id: 'SEAT123',
type: 'Free upgrade',
tier: 'Economy Plus',
seatNumber: [
'1A',
'35D',
'35E'
]
},
transfers: {
id: 'TRAN123',
type: 'Coach',
origin: 'Busstation A',
originTs: 1456936145007,
destination: 'Hotel New York',
returnTime: 1456936164233,
passengers: 3,
isReturnTransfer: true,
vendor: 'NY Cab company'
},
vehicleRental: {
id: 'VH123',
type: 'SUV - Class 1',
origin: 'JFK Rent-A-Car',
originTs: 1456936145007,
dropOff: 1456936164233,
dropOffTs: 'O\'Hare Rent-A-Car',
passengers: 3,
vendor: 'NYC Cab company',
driverAgeThreshold: 25,
isDriverOverThreshold: true,
originAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
dropoffAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
}
},
pet: {
id: 'DOG123',
type: 'Dog'
},
lounge: {
id: 'LOUNGE123',
name: 'First Class Lounge'
},
wifi: {
id: 'WIFI123'
},
priority: {
id: 'PRIO123',
type: 'Priority Boarding'
},
sportsEquipment: {
id: 'SKI123',
type: 'Rubber Boat'
},
donation: {
id: 'DON123'
},
towel: {
id: 'TOWEL123'
}
},
packageItemType: 'journey',
originalPrice: {
value: 9.99,
currency: 'USD'
},
onSale: null,
experience: {
id: 'AVVCBE',
name: 'Top Gun Air Combat',
location: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
},
startTs: 1454585859331,
endTs: 1454595869331,
duration: 240
}
},
subtotal: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
index: 1,
quantity: null
})
trPackageItemCheckout
Optional
Should be emitted for every package item the user has in their package during the checkout process.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
eventType (String) |
The type of package item event (for example, 'listing', 'detail', or 'linked_product') |
|
packageItem.id (String) |
Should be an ID unique to the package item. |
|
packageItem.price (Price) |
The price of the package item after discounts. |
|
packageItem.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.price.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.journey.id (String) |
Should be an ID unique to the journey. |
|
packageItem.journey.journeyType (String) |
The type of a journey, whether it’s in or outbound. |
|
packageItem.journey.journeyLeg (Number) |
The order of the journey leg. If only one leg in this journey it should be 1. |
|
packageItem.journey.originName (String) |
The origin location name. |
|
packageItem.journey.originCode (String) |
The origin code, IATA for airports. |
|
packageItem.journey.destinationName (String) |
The destination location name. |
|
packageItem.journey.destinationCode (String) |
The destination code, IATA for airports. |
|
packageItem.journey.operator (String) |
The operator the journey is with. |
|
packageItem.journey.departureTs (Epochtimems) |
The departure epoch time in milliseconds. |
|
packageItem.journey.departureTimezoneOffset (Number) |
The departure timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120) |
|
packageItem.journey.arrivalTs (Epochtimems) |
The arrival epoch time in milliseconds. |
|
packageItem.journey.arrivalTimezoneOffset (Number) |
The arrival timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120). |
|
packageItem.journey.travelTime (Number) |
The total time to get from origin to destination in minutes. |
|
packageItem.journey.stops (Number) |
The number of stops required to get to the destination. 0 for direct flights. |
|
packageItem.journey.isFinalLeg (Boolean) |
Whether this part of the journey is the final leg. |
|
packageItem.journey.fare (String) |
The fare class chosen for this journey. |
|
packageItem.journey.originCountry (String) |
The origin location country. |
|
packageItem.journey.destinationCountry (String) |
The destination country. |
|
packageItem.journey.stopCodes (String[]) |
The destination codes of the stopovers. |
|
packageItem.journey.stopOperators (String[]) |
The operators of the journeys between the stopovers. |
|
packageItem.journey.vesselType (String) |
Indicates the journey leg’s vessel type. |
|
packageItem.journey.availableSeats (Number) |
Indicates the number of available seats on the journey leg, at the time of the event. |
|
packageItem.accommodation.id (String) |
Should be an ID unique to the accommodation. |
|
packageItem.accommodation.name (String) |
The name of the accommodation. |
|
packageItem.accommodation.brand (String) |
The brand of the accommodation. |
|
packageItem.accommodation.rating (String) |
The rating of the accommodation. |
|
packageItem.accommodation.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
packageItem.accommodation.stars (Number) |
The number of stars awarded to the accommodation. |
|
packageItem.accommodation.address.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.accommodation.address.company (String) |
The name of the company |
|
packageItem.accommodation.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.accommodation.address.locality (String) |
The town or city |
|
packageItem.accommodation.address.region (String) |
E.g state in the US, county in the UK |
|
packageItem.accommodation.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.accommodation.address.country (String) |
The name of the country |
|
packageItem.accommodation.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.accommodation.boardBasis (String) |
Board basis. |
|
packageItem.accommodation.maxOccupancy (Number) |
Maximum number of occupants for the accommodation. |
|
packageItem.accommodation.travelLocation.country (String) |
The country of the location. |
|
packageItem.accommodation.travelLocation.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.accommodation.travelLocation.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.accommodation.travelLocation.locality (String) |
The town or city. |
|
packageItem.accommodation.travelLocation.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.accommodation.travelLocation.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.ancillary.ancillaryType (String) |
The type of the ancillary. |
|
packageItem.ancillary.insurance.id (String) |
Should be an ID unique to the insurance ancillary. |
|
packageItem.ancillary.insurance.type (String) |
The type of the insurance. |
|
packageItem.ancillary.insurance.coverage (Number) |
The number of insurance policies booked (for example, if travel insurance policies were selected for 2 people, this would be 2) |
|
packageItem.ancillary.luggage.id (String) |
Should be an ID unique to the luggage ancillary. |
|
packageItem.ancillary.luggage.type (String) |
The type of the luggage. |
|
packageItem.ancillary.luggage.weight (Number) |
The max weight of the luggage ancillary, in kilograms. |
|
packageItem.ancillary.meal.id (String) |
Should be an ID unique to the meal ancillary. |
|
packageItem.ancillary.meal.type (String) |
The type of the meal. |
|
packageItem.ancillary.parking.id (String) |
Should be an ID unique to the parking ancillary. |
|
packageItem.ancillary.parking.type (String) |
The type of the parking booking. |
|
packageItem.ancillary.parking.duration (Number) |
The duration of the parking booking in days. |
|
packageItem.ancillary.seats.id (String) |
Should be an ID unique to the seat ancillary. |
|
packageItem.ancillary.seats.type (String) |
The type of the seat booking. |
|
packageItem.ancillary.seats.tier (String) |
The seating class. |
|
packageItem.ancillary.seats.seatNumber (String[]) |
The booked seat numbers. |
|
packageItem.ancillary.transfers.id (String) |
Should be an ID unique to the transfer ancillary. |
|
packageItem.ancillary.transfers.type (String) |
The type of the transfer. |
|
packageItem.ancillary.transfers.origin (String) |
The pick up point of the transfer. |
|
packageItem.ancillary.transfers.originTs (Epochtimems) |
The pick up time of the transfer. |
|
packageItem.ancillary.transfers.destination (String) |
The drop off point of the transfer. |
|
packageItem.ancillary.transfers.returnTime (Epochtimems) |
The time of the return pick up |
|
packageItem.ancillary.transfers.passengers (Number) |
The amount of passengers that are going to use the transfer. |
|
packageItem.ancillary.transfers.isReturnTransfer (Boolean) |
Whether the transfer is return. |
|
packageItem.ancillary.transfers.vendor (String) |
The organization executing the transfer |
|
packageItem.ancillary.vehicleRental.id (String) |
Should be an ID unique to the vehicle rental ancillary. |
|
packageItem.ancillary.vehicleRental.type (String) |
The type of the rental. |
|
packageItem.ancillary.vehicleRental.origin (String) |
The pick up point of the rental. |
|
packageItem.ancillary.vehicleRental.originTs (Epochtimems) |
The pick up time of the rental. |
|
packageItem.ancillary.vehicleRental.dropOff (Epochtimems) |
The time of the return pick up. |
|
packageItem.ancillary.vehicleRental.dropOffTs (String) |
The drop off point of the rental. |
|
packageItem.ancillary.vehicleRental.passengers (Number) |
The amount of passengers that are going to use the rental. |
|
packageItem.ancillary.vehicleRental.vendor (String) |
The organization executing the transfer. |
|
packageItem.ancillary.vehicleRental.driverAgeThreshold (Number) |
The age threshold required for the driver to rent the vehicle. |
|
packageItem.ancillary.vehicleRental.isDriverOverThreshold (Boolean) |
Indicates if driver’s age is greater than |
|
packageItem.ancillary.vehicleRental.originAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.originAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.originAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.originAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.originAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.originAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.originAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.originAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.vehicleRental.dropoffAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.dropoffAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.dropoffAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.dropoffAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.dropoffAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.dropoffAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.pet.id (String) |
Should be an ID unique to pet ancillary. |
|
packageItem.ancillary.pet.type (String) |
The type of pet. |
|
packageItem.ancillary.lounge.id (String) |
Should be an ID unique to the lounge ancillary |
|
packageItem.ancillary.lounge.name (String) |
The name of the lounge. |
|
packageItem.ancillary.wifi.id (String) |
Should be an ID unique to wifi ancillary |
|
packageItem.ancillary.priority.id (String) |
Should be an ID unique to the priority ancillary. |
|
packageItem.ancillary.priority.type (String) |
The type of priority this ancillary gives. |
|
packageItem.ancillary.sportsEquipment.id (String) |
Should be an ID unique to the sports equipment ancillary. |
|
packageItem.ancillary.sportsEquipment.type (String) |
The type of sports equipment. |
|
packageItem.ancillary.donation.id (String) |
Should be an ID unique to the donation ancillary. |
|
packageItem.ancillary.towel.id (String) |
Should be an ID unique to the towel ancillary. |
|
packageItem.packageItemType (String) |
Describes the type of package item, whether it is a journey, accommodation or ancillary item. |
|
packageItem.originalPrice (Price) |
The original price of the package item. |
|
packageItem.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.onSale (Boolean) |
Is item on sale? |
|
packageItem.experience.id (String) |
Should be an ID unique to the experience. |
|
packageItem.experience.name (String) |
The name of the experience. |
|
packageItem.experience.location.country (String) |
The country of the location. |
|
packageItem.experience.location.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.experience.location.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.experience.location.locality (String) |
The town or city. |
|
packageItem.experience.location.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.experience.location.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.experience.startTs (Epochtimems) |
The experience commencement epoch time in milliseconds. |
|
packageItem.experience.endTs (Epochtimems) |
The experience conclusion epoch time in milliseconds. |
|
packageItem.experience.duration (Number) |
The total duration of the experience in minutes. |
|
subtotal (Price) |
The price of the package item excluding tax and discounts. |
|
subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
discount (Price) |
The amount discounted from vouchers or promotions for the package item. |
|
discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
discount.currency (String) |
The ISO 4217 currency (for example, |
|
subtotalIncludingTax (Price) |
The total cost of the package item including tax, excluding discounts. |
|
subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
index (Number) |
The index of the package item as it’s positioned on the page (for example, the first package item in a listing would be 0, the next would be 1) |
|
quantity (Number) |
The number of items described by the line item. |
|
paymentType (String) |
For example, visa, paypal, voucher. |
|
billingAddress.addressee (String) |
Full name of the person for whom the address is for |
|
billingAddress.company (String) |
The name of the company |
|
billingAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
billingAddress.locality (String) |
The town or city |
|
billingAddress.region (String) |
E.g state in the US, county in the UK |
|
billingAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
billingAddress.country (String) |
The name of the country |
|
billingAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
deliveryAddress.addressee (String) |
Full name of the person for whom the address is for |
|
deliveryAddress.company (String) |
The name of the company |
|
deliveryAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
deliveryAddress.locality (String) |
The town or city |
|
deliveryAddress.region (String) |
E.g state in the US, county in the UK |
|
deliveryAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
deliveryAddress.country (String) |
The name of the country |
|
deliveryAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
step (String) |
The current step of the checkout process. |
|
Example JavaScript
uv.emit('trPackageItemCheckout', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
eventType: 'detail',
packageItem: {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
journey: {
id: 'FL0989',
journeyType: 'inbound',
journeyLeg: 2,
originName: 'John F. Kennedy International',
originCode: 'JFK',
destinationName: 'Los Angeles International',
destinationCode: 'LAX',
operator: 'American Airlines',
departureTs: 1454585859331,
departureTimezoneOffset: -120,
arrivalTs: 1454595869331,
arrivalTimezoneOffset: -420,
travelTime: 360,
stops: 2,
isFinalLeg: true,
fare: 'Premium Cabin',
originCountry: 'France',
destinationCountry: 'Brazil',
stopCodes: [
'JFK',
'LHR'
],
stopOperators: [
'Amazing Airlines',
'Cool Airways',
'Flying Airlines'
],
vesselType: 'A321',
availableSeats: 45
},
accommodation: {
id: 'AC221144',
name: 'Hilton',
brand: 'Hilton Hotels & Resorts',
rating: '4',
normalizedRating: 0.4,
stars: 4,
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
boardBasis: 'All Inclusive',
maxOccupancy: 4,
travelLocation: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
}
},
ancillary: {
ancillaryType: 'insurance',
insurance: {
id: 'INS1234',
type: 'Travel Insurance',
coverage: 2
},
luggage: {
id: 'LUG123',
type: 'Carry on',
weight: 32
},
meal: {
id: 'MEAL123',
type: 'Child Menu'
},
parking: {
id: 'PARK123',
type: 'Valet parking',
duration: 10
},
seats: {
id: 'SEAT123',
type: 'Free upgrade',
tier: 'Economy Plus',
seatNumber: [
'1A',
'35D',
'35E'
]
},
transfers: {
id: 'TRAN123',
type: 'Coach',
origin: 'Busstation A',
originTs: 1456936145007,
destination: 'Hotel New York',
returnTime: 1456936164233,
passengers: 3,
isReturnTransfer: true,
vendor: 'NY Cab company'
},
vehicleRental: {
id: 'VH123',
type: 'SUV - Class 1',
origin: 'JFK Rent-A-Car',
originTs: 1456936145007,
dropOff: 1456936164233,
dropOffTs: 'O\'Hare Rent-A-Car',
passengers: 3,
vendor: 'NYC Cab company',
driverAgeThreshold: 25,
isDriverOverThreshold: true,
originAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
dropoffAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
}
},
pet: {
id: 'DOG123',
type: 'Dog'
},
lounge: {
id: 'LOUNGE123',
name: 'First Class Lounge'
},
wifi: {
id: 'WIFI123'
},
priority: {
id: 'PRIO123',
type: 'Priority Boarding'
},
sportsEquipment: {
id: 'SKI123',
type: 'Rubber Boat'
},
donation: {
id: 'DON123'
},
towel: {
id: 'TOWEL123'
}
},
packageItemType: 'journey',
originalPrice: {
value: 9.99,
currency: 'USD'
},
onSale: null,
experience: {
id: 'AVVCBE',
name: 'Top Gun Air Combat',
location: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
},
startTs: 1454585859331,
endTs: 1454595869331,
duration: 240
}
},
subtotal: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
index: 1,
quantity: null,
paymentType: 'Visa',
billingAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
deliveryAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
step: 'Payment Details'
})
trPackageItemTransaction
Optional
Should be emitted for every package item that has been transacted.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
eventType (String) |
The type of package item event (for example, 'listing', 'detail', or 'linked_product') |
|
packageItem.id (String) |
Should be an ID unique to the package item. |
|
packageItem.price (Price) |
The price of the package item after discounts. |
|
packageItem.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.price.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.journey.id (String) |
Should be an ID unique to the journey. |
|
packageItem.journey.journeyType (String) |
The type of a journey, whether it’s in or outbound. |
|
packageItem.journey.journeyLeg (Number) |
The order of the journey leg. If only one leg in this journey it should be 1. |
|
packageItem.journey.originName (String) |
The origin location name. |
|
packageItem.journey.originCode (String) |
The origin code, IATA for airports. |
|
packageItem.journey.destinationName (String) |
The destination location name. |
|
packageItem.journey.destinationCode (String) |
The destination code, IATA for airports. |
|
packageItem.journey.operator (String) |
The operator the journey is with. |
|
packageItem.journey.departureTs (Epochtimems) |
The departure epoch time in milliseconds. |
|
packageItem.journey.departureTimezoneOffset (Number) |
The departure timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120) |
|
packageItem.journey.arrivalTs (Epochtimems) |
The arrival epoch time in milliseconds. |
|
packageItem.journey.arrivalTimezoneOffset (Number) |
The arrival timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120). |
|
packageItem.journey.travelTime (Number) |
The total time to get from origin to destination in minutes. |
|
packageItem.journey.stops (Number) |
The number of stops required to get to the destination. 0 for direct flights. |
|
packageItem.journey.isFinalLeg (Boolean) |
Whether this part of the journey is the final leg. |
|
packageItem.journey.fare (String) |
The fare class chosen for this journey. |
|
packageItem.journey.originCountry (String) |
The origin location country. |
|
packageItem.journey.destinationCountry (String) |
The destination country. |
|
packageItem.journey.stopCodes (String[]) |
The destination codes of the stopovers. |
|
packageItem.journey.stopOperators (String[]) |
The operators of the journeys between the stopovers. |
|
packageItem.journey.vesselType (String) |
Indicates the journey leg’s vessel type. |
|
packageItem.journey.availableSeats (Number) |
Indicates the number of available seats on the journey leg, at the time of the event. |
|
packageItem.accommodation.id (String) |
Should be an ID unique to the accommodation. |
|
packageItem.accommodation.name (String) |
The name of the accommodation. |
|
packageItem.accommodation.brand (String) |
The brand of the accommodation. |
|
packageItem.accommodation.rating (String) |
The rating of the accommodation. |
|
packageItem.accommodation.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
packageItem.accommodation.stars (Number) |
The number of stars awarded to the accommodation. |
|
packageItem.accommodation.address.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.accommodation.address.company (String) |
The name of the company |
|
packageItem.accommodation.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.accommodation.address.locality (String) |
The town or city |
|
packageItem.accommodation.address.region (String) |
E.g state in the US, county in the UK |
|
packageItem.accommodation.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.accommodation.address.country (String) |
The name of the country |
|
packageItem.accommodation.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.accommodation.boardBasis (String) |
Board basis. |
|
packageItem.accommodation.maxOccupancy (Number) |
Maximum number of occupants for the accommodation. |
|
packageItem.accommodation.travelLocation.country (String) |
The country of the location. |
|
packageItem.accommodation.travelLocation.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.accommodation.travelLocation.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.accommodation.travelLocation.locality (String) |
The town or city. |
|
packageItem.accommodation.travelLocation.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.accommodation.travelLocation.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.ancillary.ancillaryType (String) |
The type of the ancillary. |
|
packageItem.ancillary.insurance.id (String) |
Should be an ID unique to the insurance ancillary. |
|
packageItem.ancillary.insurance.type (String) |
The type of the insurance. |
|
packageItem.ancillary.insurance.coverage (Number) |
The number of insurance policies booked (for example, if travel insurance policies were selected for 2 people, this would be 2) |
|
packageItem.ancillary.luggage.id (String) |
Should be an ID unique to the luggage ancillary. |
|
packageItem.ancillary.luggage.type (String) |
The type of the luggage. |
|
packageItem.ancillary.luggage.weight (Number) |
The max weight of the luggage ancillary, in kilograms. |
|
packageItem.ancillary.meal.id (String) |
Should be an ID unique to the meal ancillary. |
|
packageItem.ancillary.meal.type (String) |
The type of the meal. |
|
packageItem.ancillary.parking.id (String) |
Should be an ID unique to the parking ancillary. |
|
packageItem.ancillary.parking.type (String) |
The type of the parking booking. |
|
packageItem.ancillary.parking.duration (Number) |
The duration of the parking booking in days. |
|
packageItem.ancillary.seats.id (String) |
Should be an ID unique to the seat ancillary. |
|
packageItem.ancillary.seats.type (String) |
The type of the seat booking. |
|
packageItem.ancillary.seats.tier (String) |
The seating class. |
|
packageItem.ancillary.seats.seatNumber (String[]) |
The booked seat numbers. |
|
packageItem.ancillary.transfers.id (String) |
Should be an ID unique to the transfer ancillary. |
|
packageItem.ancillary.transfers.type (String) |
The type of the transfer. |
|
packageItem.ancillary.transfers.origin (String) |
The pick up point of the transfer. |
|
packageItem.ancillary.transfers.originTs (Epochtimems) |
The pick up time of the transfer. |
|
packageItem.ancillary.transfers.destination (String) |
The drop off point of the transfer. |
|
packageItem.ancillary.transfers.returnTime (Epochtimems) |
The time of the return pick up |
|
packageItem.ancillary.transfers.passengers (Number) |
The amount of passengers that are going to use the transfer. |
|
packageItem.ancillary.transfers.isReturnTransfer (Boolean) |
Whether the transfer is return. |
|
packageItem.ancillary.transfers.vendor (String) |
The organization executing the transfer |
|
packageItem.ancillary.vehicleRental.id (String) |
Should be an ID unique to the vehicle rental ancillary. |
|
packageItem.ancillary.vehicleRental.type (String) |
The type of the rental. |
|
packageItem.ancillary.vehicleRental.origin (String) |
The pick up point of the rental. |
|
packageItem.ancillary.vehicleRental.originTs (Epochtimems) |
The pick up time of the rental. |
|
packageItem.ancillary.vehicleRental.dropOff (Epochtimems) |
The time of the return pick up. |
|
packageItem.ancillary.vehicleRental.dropOffTs (String) |
The drop off point of the rental. |
|
packageItem.ancillary.vehicleRental.passengers (Number) |
The amount of passengers that are going to use the rental. |
|
packageItem.ancillary.vehicleRental.vendor (String) |
The organization executing the transfer. |
|
packageItem.ancillary.vehicleRental.driverAgeThreshold (Number) |
The age threshold required for the driver to rent the vehicle. |
|
packageItem.ancillary.vehicleRental.isDriverOverThreshold (Boolean) |
Indicates if driver’s age is greater than |
|
packageItem.ancillary.vehicleRental.originAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.originAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.originAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.originAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.originAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.originAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.originAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.originAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.vehicleRental.dropoffAddress.addressee (String) |
Full name of the person for whom the address is for |
|
packageItem.ancillary.vehicleRental.dropoffAddress.company (String) |
The name of the company |
|
packageItem.ancillary.vehicleRental.dropoffAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.locality (String) |
The town or city |
|
packageItem.ancillary.vehicleRental.dropoffAddress.region (String) |
E.g state in the US, county in the UK |
|
packageItem.ancillary.vehicleRental.dropoffAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
packageItem.ancillary.vehicleRental.dropoffAddress.country (String) |
The name of the country |
|
packageItem.ancillary.vehicleRental.dropoffAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
packageItem.ancillary.pet.id (String) |
Should be an ID unique to pet ancillary. |
|
packageItem.ancillary.pet.type (String) |
The type of pet. |
|
packageItem.ancillary.lounge.id (String) |
Should be an ID unique to the lounge ancillary |
|
packageItem.ancillary.lounge.name (String) |
The name of the lounge. |
|
packageItem.ancillary.wifi.id (String) |
Should be an ID unique to wifi ancillary |
|
packageItem.ancillary.priority.id (String) |
Should be an ID unique to the priority ancillary. |
|
packageItem.ancillary.priority.type (String) |
The type of priority this ancillary gives. |
|
packageItem.ancillary.sportsEquipment.id (String) |
Should be an ID unique to the sports equipment ancillary. |
|
packageItem.ancillary.sportsEquipment.type (String) |
The type of sports equipment. |
|
packageItem.ancillary.donation.id (String) |
Should be an ID unique to the donation ancillary. |
|
packageItem.ancillary.towel.id (String) |
Should be an ID unique to the towel ancillary. |
|
packageItem.packageItemType (String) |
Describes the type of package item, whether it is a journey, accommodation or ancillary item. |
|
packageItem.originalPrice (Price) |
The original price of the package item. |
|
packageItem.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
packageItem.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
packageItem.onSale (Boolean) |
Is item on sale? |
|
packageItem.experience.id (String) |
Should be an ID unique to the experience. |
|
packageItem.experience.name (String) |
The name of the experience. |
|
packageItem.experience.location.country (String) |
The country of the location. |
|
packageItem.experience.location.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
packageItem.experience.location.region (String) |
E.g state in the US, county in the UK. |
|
packageItem.experience.location.locality (String) |
The town or city. |
|
packageItem.experience.location.name (String) |
A name specific to this location (e.g airport name) |
|
packageItem.experience.location.code (String) |
A code specific to this location (e.g airport code) |
|
packageItem.experience.startTs (Epochtimems) |
The experience commencement epoch time in milliseconds. |
|
packageItem.experience.endTs (Epochtimems) |
The experience conclusion epoch time in milliseconds. |
|
packageItem.experience.duration (Number) |
The total duration of the experience in minutes. |
|
subtotal (Price) |
The price of the package item excluding tax and discounts. |
|
subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
discount (Price) |
The amount discounted from vouchers or promotions for the package item. |
|
discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
discount.currency (String) |
The ISO 4217 currency (for example, |
|
subtotalIncludingTax (Price) |
The total cost of the package item including tax, excluding discounts. |
|
subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
index (Number) |
The index of the package item as it’s positioned on the page (for example, the first package item in a listing would be 0, the next would be 1) |
|
quantity (Number) |
The number of items described by the line item. |
|
transaction.id (String) |
An Id unique to the transaction |
|
transaction.firstTransaction (Boolean) |
True only if this is the first ever transaction for the user |
|
transaction.paymentType (String) |
The type of payment |
|
transaction.billingAddress.addressee (String) |
Full name of the person for whom the address is for |
|
transaction.billingAddress.company (String) |
The name of the company |
|
transaction.billingAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
transaction.billingAddress.locality (String) |
The town or city |
|
transaction.billingAddress.region (String) |
E.g state in the US, county in the UK |
|
transaction.billingAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
transaction.billingAddress.country (String) |
The name of the country |
|
transaction.billingAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
transaction.parentId (String) |
If the transaction is an amendment to a previous transaction, should be the Id of the parent transaction |
|
Example JavaScript
uv.emit('trPackageItemTransaction', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
eventType: 'detail',
packageItem: {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
journey: {
id: 'FL0989',
journeyType: 'inbound',
journeyLeg: 2,
originName: 'John F. Kennedy International',
originCode: 'JFK',
destinationName: 'Los Angeles International',
destinationCode: 'LAX',
operator: 'American Airlines',
departureTs: 1454585859331,
departureTimezoneOffset: -120,
arrivalTs: 1454595869331,
arrivalTimezoneOffset: -420,
travelTime: 360,
stops: 2,
isFinalLeg: true,
fare: 'Premium Cabin',
originCountry: 'France',
destinationCountry: 'Brazil',
stopCodes: [
'JFK',
'LHR'
],
stopOperators: [
'Amazing Airlines',
'Cool Airways',
'Flying Airlines'
],
vesselType: 'A321',
availableSeats: 45
},
accommodation: {
id: 'AC221144',
name: 'Hilton',
brand: 'Hilton Hotels & Resorts',
rating: '4',
normalizedRating: 0.4,
stars: 4,
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
boardBasis: 'All Inclusive',
maxOccupancy: 4,
travelLocation: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
}
},
ancillary: {
ancillaryType: 'insurance',
insurance: {
id: 'INS1234',
type: 'Travel Insurance',
coverage: 2
},
luggage: {
id: 'LUG123',
type: 'Carry on',
weight: 32
},
meal: {
id: 'MEAL123',
type: 'Child Menu'
},
parking: {
id: 'PARK123',
type: 'Valet parking',
duration: 10
},
seats: {
id: 'SEAT123',
type: 'Free upgrade',
tier: 'Economy Plus',
seatNumber: [
'1A',
'35D',
'35E'
]
},
transfers: {
id: 'TRAN123',
type: 'Coach',
origin: 'Busstation A',
originTs: 1456936145007,
destination: 'Hotel New York',
returnTime: 1456936164233,
passengers: 3,
isReturnTransfer: true,
vendor: 'NY Cab company'
},
vehicleRental: {
id: 'VH123',
type: 'SUV - Class 1',
origin: 'JFK Rent-A-Car',
originTs: 1456936145007,
dropOff: 1456936164233,
dropOffTs: 'O\'Hare Rent-A-Car',
passengers: 3,
vendor: 'NYC Cab company',
driverAgeThreshold: 25,
isDriverOverThreshold: true,
originAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
dropoffAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
}
},
pet: {
id: 'DOG123',
type: 'Dog'
},
lounge: {
id: 'LOUNGE123',
name: 'First Class Lounge'
},
wifi: {
id: 'WIFI123'
},
priority: {
id: 'PRIO123',
type: 'Priority Boarding'
},
sportsEquipment: {
id: 'SKI123',
type: 'Rubber Boat'
},
donation: {
id: 'DON123'
},
towel: {
id: 'TOWEL123'
}
},
packageItemType: 'journey',
originalPrice: {
value: 9.99,
currency: 'USD'
},
onSale: null,
experience: {
id: 'AVVCBE',
name: 'Top Gun Air Combat',
location: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
},
startTs: 1454585859331,
endTs: 1454595869331,
duration: 240
}
},
subtotal: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
index: 1,
quantity: null,
transaction: {
id: '83748372',
firstTransaction: true,
paymentType: 'paypal',
billingAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
parentId: '83748371'
}
})
trPackageSummary
Optional
Should be emitted for each package shown on a listing or detail page.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
Example JavaScript
uv.emit('trPackageSummary', {
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
}
})
trSearch
Optional
Emitted for each search conducted in order to report what the user searched for. If the user is searching for multiple city journeys then one event is sent for each journey (and searchType is going to be multi city journeys) Ranges are represented by min/exact/max values.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
searchType (String) |
The search type. |
|
numberOfAdults (Number) |
The number of adults in the search. |
|
numberOfChildren (Number) |
The number of children in the search. |
|
numberOfInfants (Number) |
The number of infants in the search. |
|
numberOfStudents (Number) |
The number of students in the search. |
|
numberOfTeenagers (Number) |
The number of teenagers in the search. |
|
totalNumber (Number) |
The total number of travellers. |
|
startTs (Epochtimems) |
The epoch time in milliseconds for the departure date. |
|
endTs (Epochtimems) |
The epoch time in milliseconds for the return date. |
|
exactDuration (Number) |
The exact number of nights the user searched for. |
|
minDuration (Number) |
The minimum number of nights the user searched for. |
|
maxDuration (Number) |
The maximum number of nights the user searched for. |
|
exactPrice (Price) |
The exact price the user searched for. |
|
exactPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
exactPrice.currency (String) |
The ISO 4217 currency (for example, |
|
minPrice (Price) |
The min price the user searched for. |
|
minPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
minPrice.currency (String) |
The ISO 4217 currency (for example, |
|
maxPrice (Price) |
The max price the user searched for. |
|
maxPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
maxPrice.currency (String) |
The ISO 4217 currency (for example, |
|
origin.country (String) |
The country of the location. |
|
origin.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
origin.region (String) |
E.g state in the US, county in the UK. |
|
origin.locality (String) |
The town or city. |
|
origin.name (String) |
A name specific to this location (e.g airport name) |
|
origin.code (String) |
A code specific to this location (e.g airport code) |
|
destination.country (String) |
The country of the location. |
|
destination.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
destination.region (String) |
E.g state in the US, county in the UK. |
|
destination.locality (String) |
The town or city. |
|
destination.name (String) |
A name specific to this location (e.g airport name) |
|
destination.code (String) |
A code specific to this location (e.g airport code) |
|
leadTime (Number) |
The number of days between the day of search and the date the user searched for. |
|
boardBasis (String[]) |
The type of board the user searched for. |
|
roomFacilities (String[]) |
The type of facilities the user searched for. |
|
roomTypes (String[]) |
The type of rooms the user searched for. |
|
numberOfRooms (Number) |
The number of rooms the user searched for. |
|
exactRating (Number) |
The exact rating of the room the user searched for. |
|
minRating (Number) |
The minimum rating of the room the user searched for. |
|
maxRating (Number) |
The maximum rating of the room the user searched for. |
|
outboundFares (String[]) |
The fares the user searched for for the outbound journey. |
|
inboundFares (String[]) |
The fares the user searched for for the inbound journey. |
|
flexibleDates (Boolean) |
Whether search dates are flexible. |
|
results.pagination (Number) |
The number of items shown per page to the visitor. |
|
results.resultCount (Number) |
The number of items that match the current query and/or filters. Should be more than or equal to the number of items shown to the visitor. |
|
results.layout (String) |
The user’s chosen visual layout of the listing (for example, |
|
results.sortBy (String) |
The sort column. |
|
results.sortDirection (String) |
The sort direction, that is, |
|
Example JavaScript
uv.emit('trSearch', {
searchType: 'One-way Flight',
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
numberOfStudents: 2,
numberOfTeenagers: 2,
totalNumber: 9,
startTs: 1454585576191,
endTs: 1455926400000,
exactDuration: 16,
minDuration: 1,
maxDuration: 6,
exactPrice: {
value: 9.99,
currency: 'USD'
},
minPrice: {
value: 9.99,
currency: 'USD'
},
maxPrice: {
value: 9.99,
currency: 'USD'
},
origin: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
},
destination: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
},
leadTime: 42,
boardBasis: [
'All Inclusive',
'Room Only'
],
roomFacilities: [
'A/C',
'Wifi',
'Jacuzzi'
],
roomTypes: [
'Royal Suite',
'Single Room'
],
numberOfRooms: 3,
exactRating: 3.5,
minRating: 3,
maxRating: 4.5,
outboundFares: [
'Flexible First Class'
],
inboundFares: [
'Cheap Cheap Economy'
],
flexibleDates: true,
results: {
pagination: 20,
resultCount: 65,
layout: 'grid',
sortBy: 'price',
sortDirection: 'descending'
}
})
trUserLogin
Optional
Emitted when a user logs in.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
user.id (String) |
A unique user Id. Can also be a hash of the username and/or email address |
|
user.title (String) |
The user’s title |
|
user.firstName (String) |
The user’s first name |
|
user.lastName (String) |
The user’s last name |
|
user.gender (String) |
The user’s gender. Can be |
|
user.username (String) |
The username for the user |
|
user.email (String) |
The user’s primary email address |
|
user.firstSession (Boolean) |
True if it’s the user’s first session |
|
user.hasTransacted (Boolean) |
True if the user has completed 1 or more transactions |
|
user.loyalty.id (String) |
Loyalty program membership number |
|
user.loyalty.tier (String) |
The level of the loyalty program this user holds |
|
user.loyalty.tierPoints (Number) |
The number of tier points |
|
user.loyalty.membershipType (String) |
The type of loyalty membership |
|
user.loyalty.membershipPoints (Number) |
The number of points from this membership |
|
user.address.addressee (String) |
Full name of the person for whom the address is for |
|
user.address.company (String) |
The name of the company |
|
user.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
user.address.locality (String) |
The town or city |
|
user.address.region (String) |
E.g state in the US, county in the UK |
|
user.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
user.address.country (String) |
The name of the country |
|
user.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
user.isGuest (String) |
True if the user is a guest user without a registered account |
|
user.age (Number) |
The user’s age in years |
|
user.phoneNumber (String) |
The user’s phone number. Should be formatted without spaces, braces, or hyphens |
|
user.countryCallingCode (String) |
The country calling code for the given phone number, formatted to include the |
|
user.device (String) |
Device the user is browsing on - for example |
|
firstLogin (Boolean) |
True only if this is the first time the user has logged in. |
|
Example JavaScript
uv.emit('trUserLogin', {
user: {
id: '2861102bace6e6620948564f0ce0a7cd',
title: 'Mr',
firstName: 'John',
lastName: 'Smith',
gender: 'Male',
username: 'JohnSmith',
email: 'john@johnsmith.com',
firstSession: null,
hasTransacted: true,
loyalty: {
id: '8989752-223',
tier: 'silver',
tierPoints: null,
membershipType: 'Clearsky Rewards',
membershipPoints: null
},
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
isGuest: 'true',
age: 42,
phoneNumber: '2121234567',
countryCallingCode: '1',
device: 'kiosk'
},
firstLogin: true
})
trUserSignup
Optional
Emitted when a user signs up for a newsletter or event, for example.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
user.id (String) |
A unique user Id. Can also be a hash of the username and/or email address |
|
user.title (String) |
The user’s title |
|
user.firstName (String) |
The user’s first name |
|
user.lastName (String) |
The user’s last name |
|
user.gender (String) |
The user’s gender. Can be |
|
user.username (String) |
The username for the user |
|
user.email (String) |
The user’s primary email address |
|
user.firstSession (Boolean) |
True if it’s the user’s first session |
|
user.hasTransacted (Boolean) |
True if the user has completed 1 or more transactions |
|
user.loyalty.id (String) |
Loyalty program membership number |
|
user.loyalty.tier (String) |
The level of the loyalty program this user holds |
|
user.loyalty.tierPoints (Number) |
The number of tier points |
|
user.loyalty.membershipType (String) |
The type of loyalty membership |
|
user.loyalty.membershipPoints (Number) |
The number of points from this membership |
|
user.address.addressee (String) |
Full name of the person for whom the address is for |
|
user.address.company (String) |
The name of the company |
|
user.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
user.address.locality (String) |
The town or city |
|
user.address.region (String) |
E.g state in the US, county in the UK |
|
user.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
user.address.country (String) |
The name of the country |
|
user.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
user.isGuest (String) |
True if the user is a guest user without a registered account |
|
user.age (Number) |
The user’s age in years |
|
user.phoneNumber (String) |
The user’s phone number. Should be formatted without spaces, braces, or hyphens |
|
user.countryCallingCode (String) |
The country calling code for the given phone number, formatted to include the |
|
user.device (String) |
Device the user is browsing on - for example |
|
type (String) |
The type of sign up (for example, newsletter or event) |
|
name (String) |
A meaningful name unique to the sign up. |
|
Example JavaScript
uv.emit('trUserSignup', {
user: {
id: '2861102bace6e6620948564f0ce0a7cd',
title: 'Mr',
firstName: 'John',
lastName: 'Smith',
gender: 'Male',
username: 'JohnSmith',
email: 'john@johnsmith.com',
firstSession: null,
hasTransacted: true,
loyalty: {
id: '8989752-223',
tier: 'silver',
tierPoints: null,
membershipType: 'Clearsky Rewards',
membershipPoints: null
},
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
isGuest: 'true',
age: 42,
phoneNumber: '2121234567',
countryCallingCode: '1',
device: 'kiosk'
},
type: 'newsletter',
name: 'weekly signup'
})
trVoucher
Optional
Emitted when a voucher code is entered.
Example schema
Field (JS Data Type) | Description | Required for |
---|---|---|
entry (String) |
Actual voucher code the user enters. |
|
entrySuccess (Boolean) |
Whether or not the voucher is successfully applied to the transaction. An entry must be valid to be successful. |
|
voucher.id (String) |
A unique Id to identify the voucher used, which should be the same for all visitors that are using the voucher/promotion |
|
voucher.label (String) |
A name or label for the voucher/promotion |
|
transaction.id (String) |
An Id unique to the transaction |
|
transaction.firstTransaction (Boolean) |
True only if this is the first ever transaction for the user |
|
transaction.paymentType (String) |
The type of payment |
|
transaction.billingAddress.addressee (String) |
Full name of the person for whom the address is for |
|
transaction.billingAddress.company (String) |
The name of the company |
|
transaction.billingAddress.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
transaction.billingAddress.locality (String) |
The town or city |
|
transaction.billingAddress.region (String) |
E.g state in the US, county in the UK |
|
transaction.billingAddress.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
transaction.billingAddress.country (String) |
The name of the country |
|
transaction.billingAddress.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
transaction.parentId (String) |
If the transaction is an amendment to a previous transaction, should be the Id of the parent transaction |
|
package.id (String) |
Should be an ID unique to the trip/package. |
|
package.price (Price) |
The total price for all the passengers on the trip/package. |
|
package.price.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.price.currency (String) |
The ISO 4217 currency (for example, |
|
package.tax (Price) |
The total tax for all the passengers on the trip/package. |
|
package.tax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.tax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfAdults (Number) |
The number of adults. |
|
package.numberOfChildren (Number) |
The number of children. |
|
package.numberOfInfants (Number) |
The number of infants. |
|
package.totalNumber (Number) |
The total number of customers. |
|
package.minAgeAdults (Number) |
The lower bound for the age of adults. |
|
package.minAgeChildren (Number) |
The lower bound for the age of children. |
|
package.minAgeInfants (Number) |
The lower bound for the age of infants. |
|
package.startTs (Epochtimems) |
The start epoch time in milliseconds. |
|
package.endTs (Epochtimems) |
The end epoch time in milliseconds. |
|
package.duration (Number) |
The duration of accommodation in nights. |
|
package.originalPrice (Price) |
The original price the package was sold at. |
|
package.originalPrice.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.originalPrice.currency (String) |
The ISO 4217 currency (for example, |
|
package.name (String) |
The name of the package |
|
package.packageProvider (String) |
The provider of the package. |
|
package.type (String) |
The type of package. |
|
package.deposit (Price) |
The deposit for this package. |
|
package.deposit.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.deposit.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotal (Price) |
The total cost of the package excluding tax and discounts. |
|
package.subtotal.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotal.currency (String) |
The ISO 4217 currency (for example, |
|
package.total (Price) |
The total cost of the package including tax and discounts. |
|
package.total.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.total.currency (String) |
The ISO 4217 currency (for example, |
|
package.discount (Price) |
The amount discounted from vouchers or promotions. |
|
package.discount.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.discount.currency (String) |
The ISO 4217 currency (for example, |
|
package.subtotalIncludingTax (Price) |
The total cost of the package including tax, excluding discounts. |
|
package.subtotalIncludingTax.value (Number) |
Depending on the context, this could be the value of the basket, product, package, total, subtotal, discount, shipping, item, game, bet, etc. Refer to our setup docs for more specific details for each vertical and event |
|
package.subtotalIncludingTax.currency (String) |
The ISO 4217 currency (for example, |
|
package.numberOfStudents (Number) |
The number of students. |
|
package.numberOfTeenagers (Number) |
The number of Teenagers. |
|
package.description (String) |
The description describing the package. |
|
package.starRating (Number) |
The rating of the package. |
|
package.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
accommodation.id (String) |
Should be an ID unique to the accommodation. |
|
accommodation.name (String) |
The name of the accommodation. |
|
accommodation.brand (String) |
The brand of the accommodation. |
|
accommodation.rating (String) |
The rating of the accommodation. |
|
accommodation.normalizedRating (Number) |
A normalized rating between 0 and 1 (for example, 6/10 is normalized to 0.6) |
|
accommodation.stars (Number) |
The number of stars awarded to the accommodation. |
|
accommodation.address.addressee (String) |
Full name of the person for whom the address is for |
|
accommodation.address.company (String) |
The name of the company |
|
accommodation.address.lines (String[]) |
An array of address lines NOT including city, region, postcode or country (maximum of 3 lines allowed) |
|
accommodation.address.locality (String) |
The town or city |
|
accommodation.address.region (String) |
E.g state in the US, county in the UK |
|
accommodation.address.postalCode (String) |
Can be the country equivalent code (for example, zip code for the U.S) |
|
accommodation.address.country (String) |
The name of the country |
|
accommodation.address.countryCode (String) |
An ISO 3166-1 alpha-2 country code |
|
accommodation.boardBasis (String) |
Board basis. |
|
accommodation.maxOccupancy (Number) |
Maximum number of occupants for the accommodation. |
|
accommodation.travelLocation.country (String) |
The country of the location. |
|
accommodation.travelLocation.countryCode (String) |
An ISO 3166-1 alpha-2 country code. |
|
accommodation.travelLocation.region (String) |
E.g state in the US, county in the UK. |
|
accommodation.travelLocation.locality (String) |
The town or city. |
|
accommodation.travelLocation.name (String) |
A name specific to this location (e.g airport name) |
|
accommodation.travelLocation.code (String) |
A code specific to this location (e.g airport code) |
|
journey.id (String) |
Should be an ID unique to the journey. |
|
journey.journeyType (String) |
The type of a journey, whether it’s in or outbound. |
|
journey.journeyLeg (Number) |
The order of the journey leg. If only one leg in this journey it should be 1. |
|
journey.originName (String) |
The origin location name. |
|
journey.originCode (String) |
The origin code, IATA for airports. |
|
journey.destinationName (String) |
The destination location name. |
|
journey.destinationCode (String) |
The destination code, IATA for airports. |
|
journey.operator (String) |
The operator the journey is with. |
|
journey.departureTs (Epochtimems) |
The departure epoch time in milliseconds. |
|
journey.departureTimezoneOffset (Number) |
The departure timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120) |
|
journey.arrivalTs (Epochtimems) |
The arrival epoch time in milliseconds. |
|
journey.arrivalTimezoneOffset (Number) |
The arrival timezone offset in minutes from UTC (for example, EDT is 240 and CEST is -120). |
|
journey.travelTime (Number) |
The total time to get from origin to destination in minutes. |
|
journey.stops (Number) |
The number of stops required to get to the destination. 0 for direct flights. |
|
journey.isFinalLeg (Boolean) |
Whether this part of the journey is the final leg. |
|
journey.fare (String) |
The fare class chosen for this journey. |
|
journey.originCountry (String) |
The origin location country. |
|
journey.destinationCountry (String) |
The destination country. |
|
journey.stopCodes (String[]) |
The destination codes of the stopovers. |
|
journey.stopOperators (String[]) |
The operators of the journeys between the stopovers. |
|
journey.vesselType (String) |
Indicates the journey leg’s vessel type. |
|
journey.availableSeats (Number) |
Indicates the number of available seats on the journey leg, at the time of the event. |
|
Example JavaScript
uv.emit('trVoucher', {
entry: 'Voucher123',
entrySuccess: true,
voucher: {
id: 'AO8734',
label: 'SummerPromo'
},
transaction: {
id: '83748372',
firstTransaction: true,
paymentType: 'paypal',
billingAddress: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
parentId: '83748371'
},
'package': {
id: 'TRP201214',
price: {
value: 9.99,
currency: 'USD'
},
tax: {
value: 9.99,
currency: 'USD'
},
numberOfAdults: 2,
numberOfChildren: 5,
numberOfInfants: 2,
totalNumber: 9,
minAgeAdults: 35,
minAgeChildren: 7,
minAgeInfants: 1,
startTs: 1454585576191,
endTs: 1455926400000,
duration: 16,
originalPrice: {
value: 9.99,
currency: 'USD'
},
name: 'Capetown all in honeymoon',
packageProvider: 'Travel Co',
type: 'Tour/Chartered cruise/Packaged Holiday/Flights only',
deposit: {
value: 9.99,
currency: 'USD'
},
subtotal: {
value: 9.99,
currency: 'USD'
},
total: {
value: 9.99,
currency: 'USD'
},
discount: {
value: 9.99,
currency: 'USD'
},
subtotalIncludingTax: {
value: 9.99,
currency: 'USD'
},
numberOfStudents: 2,
numberOfTeenagers: 2,
description: 'This new active family trip is based in the charming town of Watford',
starRating: 4,
normalizedRating: 0.4
},
accommodation: {
id: 'AC221144',
name: 'Hilton',
brand: 'Hilton Hotels & Resorts',
rating: '4',
normalizedRating: 0.4,
stars: 4,
address: {
addressee: 'John Smith',
company: 'Amce Inc',
lines: [
'Flat 12',
'123 High Street'
],
locality: 'London',
region: 'New York',
postalCode: '10010',
country: 'United States',
countryCode: 'US'
},
boardBasis: 'All Inclusive',
maxOccupancy: 4,
travelLocation: {
country: 'Austria',
countryCode: 'AT',
region: 'Carinthia',
locality: 'Villefranche sur saone',
name: 'Ouagadougou Airport',
code: 'LYS'
}
},
journey: {
id: 'FL0989',
journeyType: 'inbound',
journeyLeg: 2,
originName: 'John F. Kennedy International',
originCode: 'JFK',
destinationName: 'Los Angeles International',
destinationCode: 'LAX',
operator: 'American Airlines',
departureTs: 1454585859331,
departureTimezoneOffset: -120,
arrivalTs: 1454595869331,
arrivalTimezoneOffset: -420,
travelTime: 360,
stops: 2,
isFinalLeg: true,
fare: 'Premium Cabin',
originCountry: 'France',
destinationCountry: 'Brazil',
stopCodes: [
'JFK',
'LHR'
],
stopOperators: [
'Amazing Airlines',
'Cool Airways',
'Flying Airlines'
],
vesselType: 'A321',
availableSeats: 45
}
})