Moat Tracking

Vungle supports Moat tracking for DSPs who want to see viewability reporting on the ads they send to Vungle.

We achieve this by embedding the buying platform’s reporting identifiers in our ad response and then passing them through to Moat at impression time. The buyer’s data structure adheres to the reporting dimensions on their ad server, and is accessible in their Moat UI.

Follow these steps to enable Moat tracking:

Step 1. DSP implements Moat pixel in VAST XML

The DSP implements an extension node in the format shown below. The extension can be implemented in a wrapper or within the VAST that contains the actual ad.

The ID attribute of the ViewableImpression XML node must contain the ad server macros of the DSP. These macros are evaluated within the DSP’s ad server before the ad response is returned to Vungle. If the DSP wishes to use multiple macros, the macros must be separated by the string [MOAT]. Vungle coordinates with the DSP regarding which identifiers are included.

Moat provides the value to use for ${MOAT_PARTNER_CODE} to the DSP. The value must be unique to the DSP and must be the same for a given partner across all SSPs.

      <Verification vendor="Moat">
        <ViewableImpression id="${BUYER_ID_1}[MOAT]${BUYER_ID_2}">

Step 2. Vungle passes the pixel to Moat

  1. At runtime, Vungle’s SDK receives the ad response, which includes the VAST XML of the DSP partner. The VAST XML may contain one or more extension nodes specified in Step 1.

  2. Vungle initializes Moat tracking on the impression as usual.

  3. Vungle parses the ad response and extracts any ViewableImpression elements as specified above, taking note that multiple may be present in the ad response.

  4. Vungle then passes the ViewableImpression element in string format as a separate identifier (zMoatVASTIDs), in addition to the set of identifiers already being passed to Moat. If there are multiple ViewableImpression elements, they must be concatenated with a semicolon (the character ;) and passed as a single string.

    For example:

    var moatVASTIDs = ";";
    var ids = { "level1": "_ADVERTISER_"
          , "level2": "_CAMPAIGN_"
          , "level3": “_LINE_ITEM_"
          , "level4": "_CREATIVE_"
          , "slicer1": "_SITE_"
          , "slicer2": "_PLACEMENT_"
          , "zMoatVASTIDs": moatVASTIDs

Step 3. Moat processes additional IDs from VAST XML into reporting

  1. When Moat receives the custom parameter, it parses out the DSP’s unique ID (Moat partner code), as well as the ad identifiers (which represent the macros that were evaluated in the DSP’s ad server), and includes this information in the data we communicate back to our servers.

  2. The data is routed in real time to a Moat UI provisioned for the DSP and fits the reporting structure that corresponds to the set of IDs in the pixel. Note that Moat does not provide reporting for impression-level data in the UI; however, this information can be provided in real time via a pixel fire or an impression-level export.
Have more questions? Submit a request