This is a work in progress. Feedback is welcome.
airModules
Distribution
Implementation Guidelines

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

VariablesExpected ValuesExamplesUsage Notes
languageIsoCodeString - Lower case language ISO codeen
countryIsoCodeString - Upper case country ISO codeUS
originLocationsString 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.
destinationLocationsString 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.
budgetMaximumAmountString - Between 0 and 1Billion10000Used for pre-population (when the filter is available) and query personalization.
Only applicable to Pricing airModules.
budgetRedemptionUnitStringCASH
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.
homeLocationUpper case airport IATA code.MIAUsed for pre-population (when the filter is available) and query personalization.
trackingUserConsentBooleanTRUEUsed 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.