How Index counts impressions

Media Owners
Last Updated: February 27, 2026

Note: Index supports DSPs using billing notifications via burl for all formats and creative types. For more information, see How Index handles DSP burl notification timing below.

Depending on the ad format, Index Exchange (Index) counts an impression from a publisher when the impression notification meets the impression counting criteria provided in the following table. The table also includes the Media Rating Council (MRC)'s recommended best practices for each format type.

FormatImpression counting criteriaMRC counting best practice

Web banner

Index expects to receive the billing notification in the ad markup (adm) field within the time to live (TTL) of 600 seconds.

The MRC recommendation is that an impression is considered billable when the adm "begins to render" on the user's browser. For more information about ad impression measurements, see the MRC's Desktop Display Impression Measurement Guidelines.

Mobile app banner

  • Index prefers that mobile app Media Owners support OMID for measuring impressions because Index receives the billing notification when at least one pixel of the ad renders, which reduces impression count discrepancies. The TTL for OMID-based impression measurement is three hours. For more information on OMID, see Measuring impressions with OMID.

  • If you use burl to send billing notifications, Index expects to receive the billing notification within the TTL of three hours.

  • If you do not use burl or OMID to send billing notifications:

    • Index expects to receive our adm-based notification within the TTL of 600 seconds.

    • Index recommends against pre-rendering creatives to reduce discrepancies.

The MRC's recommendation is that an impression is considered billable when at least one pixel of the banner is painted in the viewport of the user's device. As a result, Index strongly recommends that Media Owners integrate with the OM SDK so that Index can measure impressions using OMID and avoid adm-based notification. For more information about ad impression measurements, see the MRC's Mobile Application Advertising Measurement Guidelines.

Video (instream and outstream) on web, mobile app, and STV

Index expects to receive the billing notification from our VAST adm within the TTL of:

  • One hour for video (instream and outstream) on web.

  • Three hours for mobile app and STV.

The MRC's recommendation is that an impression is considered billable when the first frame of the video creative is rendered on the player. For more information about ad impression measurements, see the MRC's Digital Video Impression Measurement Guidelines.

Native on web and mobile app

Index expects to receive the billing notification in the imptrackers[] array or eventtrackers[] array in the native adm within the TTL of 300 seconds.

Not available

Index doesn't count impressions in the following situations:

  • When billing notifications don't pass our invalid traffic (IVT) standards. Index uses industry-standard IP address and UserAgent blocklists, as well as proprietary methods and data sets to filter invalid traffic.

  • When the same billing notification is sent twice within a given TTL, the second notification will be discarded as a duplicate.

  • When billing notifications are sent after Index's TTL timeout value.

How Index handles DSP burl notification timing

Index supports DSPs using billing notifications via burl for all formats and creative types.

FormatTiming

Web banner

When we receive a DSP burl, we move it to the DSP's adm so that it fires at the same time as our impression pixel.

Mobile app banner

  • When we receive a DSP burl, Index will use OMID to fire our impression notification and the DSP's burl at the same time, when at least one pixel of the banner is painted into the device's viewport.

    • If you don't support OMID but do support burl, both the DSP and Index will receive burl-based impression notifications at the same time. Index puts our impression tracker in the bid.burl to you, which then redirects to the DSP's burl.
    • If you don't support OMID or burl, the DSP's burl will be placed in the adm, and both the DSP and Index will receive the burl-based impression notification at the same time.
  • If the DSP doesn't use burl, Index assumes that their impression tracking URL is in the DSP's adm. We will still attempt to use OMID, if you support it, but will not use burl for impression counting.

Video (instream and outstream) on web, mobile app, and STV

When we receive a DSP's burl, we move it into the VAST markup as an impression node so that it fires at the same time as our impression pixel.

Native on web and mobile app

When we receive a DSP's burl, we move it into the native response's native.eventtrtackers array so that it fires at the same time as our impression pixel.