aMM Implementation Guidelines
The following assets are considered essential to publish airModules® via the airModule Manager (aMM).
Adnetify Script [Required]
The Adnetify Script is the name of the HTML snippet, a single script to be placed on the target page(s) for airModules® Campaigns to render. This script can be embedded on the page via a Tag Management System (e.g. GTM, Tealium, etc.) or directly added to the Page Source Code through development resources. Best practices will be provided during the Implementation phase to guarantee the correct script triggering. The Adnetify script includes all needed logic to embed the target campaign on the page. By only placing the required assets (Adnetify Script and Ad Unit ID) on the page, the aMM Distribution Method will manage the whole triggering and display process.
Sample Script
<script src="https://em-frontend-assets.airtrfx.com/mm/x-start.js"></script>
There should be a single instance of the Adnetify Script on the page and it should be in the HTML below the last module. Be careful if you include several modules not to repeat Adnetify Script.
Ad Unit ID [Required]
The Ad Unit ID is the name of the HTML snippet (
) placed on the target page to determine the visual page-level position where the campaign should render.Ad Unit ID Sample
<div data-container-id="em-xx-e8e0d6bc-6fad-41e7-86c2-966436cbf62c"></div>
It is required that both HTML snippets (Adnetify Script and the Ad Unit ID) are present on the page for the Module Manager to work properly. The code should be placed across every target page where it is expected to render an airModule® Campaign.
Standard dataLayer [Optional]
The PROS Standard dataLayer allows airModules® personalization based on the page context. Its usage is optional when trying to satisfy the following scenarios:
- Dynamic Context: especially useful when the customers’ URLs are the same across languages and markets and cannot be tagged with predefined context via Module Manager UI. Involved parameters:
languageIsoCode
(language - e.g.: en)countryIsoCode
(market - e.g: us)
- For pre-population and content personalization - for example:
homeLocation parameter
- will be used to pre-populate the Origins Airport filter when available.originLocations parameter
- will be used to limit the module query to only those origin airports.destinationLocations
parameter - will be used to limit the module query to only those destination airports.
The dataLayer can be created as an Object or Array.
MMdataLayer = [
{
languageIsoCode: "en",
countryIsoCode: "US",
homeLocation: "MIA",
budgetMaximumAmount: "1000",
budgetRedemptionUnit: "CASH",
originLocations: ["MIA", "TXL", "SXF"],
destinationLocations: ["LHR", "MIL", "LAX"],
trackingUserConsent: false
}
];
Supported Parameters
Variables | Expected Values | Examples | Usage Notes |
---|---|---|---|
languageIsoCode | String - Lower case language ISO code | en | |
countryIsoCode | String - Upper case country ISO code | US | |
originLocations | String Array - Upper case airports IATA code | ["MIA", "TXL", "SXF"] | Restrict the query to the available origins. Not used for pre-population - will only affect the query. |
destinationLocations | String Array - Upper case airports IATA code | ["LHR", "MIL", "LAX"] | Restrict the query to the available origins. Not used for pre-population - will only affect the query. |
budgetMaximumAmount | String - Between 0 and 1Billion | 10000 | Used for pre-population (when the filter is available) and query personalization. Only applicable to Pricing airModules. |
budgetRedemptionUnit | String | CASH MILES POINTS | Will only affect the query to be done in the specified redemption unit. This parameter should always be used accompanying budgetMaximumAmount , if not defined it will be assumed as CASH .Only applicable to Pricing airModules. |
homeLocation | Upper case airport IATA code. | MIA | Used for pre-population (when the filter is available) and query personalization. |
trackingUserConsent | Boolean | TRUE | Used to store the GDPR User Consent, allowing airModules builtin tracking to be enabled. |
As the Adnetify script, this MM dataLayer can be embedded on the page via a Tag Management System (e.g. GTM, Tealium, etc.) or directly added to the Page Source Code through development resources. As a best practice, the dataLayer should be placed before the TMS snipped in the <head>
. Additionally, it must be guaranteed the MM dataLayer is available on the page before the Adnetify script is triggered.