Subscribe by email, free
Bryan Barletta’s podcast adtech weekly from Podnews

Ad Impression Discrepancy Is Solvable In Podcasting

· By · Editor: Evo Terra · 7.8 minutes to read

Third party impression tracking is almost mandatory now in digital advertising while almost wholly ignored in podcasting. When implemented in podcasting, we can often see significant impression discrepancies between ad server and tag vendor, without a clear understanding of why. This post outlines this issue and presents a solution for solving this problem for good.

What type of impression tracking tags are supported

If you choose to move forward with third party tracking in podcasting, there’s a real low bar for what the tag vendor needs to provide you with:

A URL tracking tag for impressions

This is simply one pingback URL, not javascript, iframe, VAST, and definitely no clickthrough tags (because there are no clicks in podcasting).

Impression tag, not download

Make sure your vendor provides you with an impression tracking tag to be fired through your ad server in association with the ad and not a download tracker, associated with a specific episode. Download tags have a different but valuable function, they’re just not focused on your specific ad, but rather downloading the entire episode.

The ability to ingest IP

Using a tracking pixel without receiving an IP address provides zero value.Everything is fired server side and not on the podcast listeners device. That means you’re already limited on what information you received and the case for the value of using a tracking tag greatly diminishes. If the tag vendor ingests the forwarded IP from the listener that means they can take that value and match it against their device graph, or an invalid traffic filter, and definitely against geographical lookup. Without receiving IP, you are paying a vendor to simply echo the number of times it was fired without any bit of intelligent thought applied. DCM tags are a prime example of this.

What you’re not going to get in podcasting

Short list above for what does work, right? It’s a double edged sword unfortunately. While the world scrambles to adapt to a future without cookies and IDFA’s, Podcasters are still being asked for more data. Here are some of the data points no vendor is going to be able to provide you directly.

Mobile Ad ID’s (MAIDs)

No podcast request receives the MAID from the end users device.That doesn’t mean that you can’t get an MAID from a vendor, it’s just that it did not come directly from the listener or the podcast playing app (which, by the way, 100% has it and just doesn’t share it.).

Tag vendors often use device graphs like TapAd, Tru Optik, Claritas, and others to take the IP and user agent to identify all the MAIDs in a household. This data is far more valuable when you acknowledge you’re not tracking specific listeners, but rather their household.

There are some caveats with this methodology:

Listen Metrics

Your podcast ad server knows the following:

Everything focuses on downloads. Even an impression in podcasting is really “was enough of the episode downloaded to have passed where the ad is in the file?”.

For your podcast ad server to get listener metrics, the podcast players would need to respond back with that information. Apple, Spotify, etc all have that information, there’s just no standard for them to send it back.NPR has a really great framework that unfortunately isn’t getting the adoption it needs, called Remote Audio Data (RAD), that would solve for this. Spotify and Apple are just not going to integrate with that as Spotify doesn’t benefit from sharing it and Apple isn’t selling ads, so there goes 90% or more of the ability to see listeners. But we as an industry should be asking those remaining 10% to integrate.

Fully informed about the pitfalls facing you, let’s dig into when you should use tracking tags.

Consolidating Reporting

If your goal is to utilize a tracking partner like DCM across all your media for the reporting, then you’ve got only two choices.

Google’s DCM states clearly in their troubleshooting docs that discrepancies up to 20% are considered acceptable . Wild, right? It gets worse when you realize that Google only shares their numbers after filtering (net), so good luck even confirming if the ad server is firing the pixel enough times let alone why it’s removing impressions.

Overall, DCM removes most tools for troubleshooting, but they also have a higher privacy tolerance in podcasting, asking for the last octet of the IP address not to be shared with them when firing their pixel for certified partners. With DCM, my experience tells me that it’s straightforward to get less than a 3% discrepancy on DCM. Still, when discrepancy spikes, and I assure you it eventually will, you’ll have to accept that sometimes you won’t have enough information to resolve it.

If DCM is just your passthrough for a consolidated reporting portal, I highly recommend you ask your podcast ad server if they can provide you reporting in the exact format you need to ingest into your reporting platform. Provide them with a clear template and I think you’ll be pleasantly surprised at the headache you’re able to avoid and the margin you’re able to save while also hitting your goals.

Deeper Learning

Podsights, Chartable, Barometric, and Podtrac are focused on providing way more than just a verification that your ad server says they served the impression. In fact, Podsights and Chartable both confirmed that they don’t actually filter on gross fires of their pixel for that exact reason: they’re not here to bicker about discrepancy with your ad server, they’re trying to provide deeper insight.

These partners are focused on analytics and attribution along with being built from the ground up for podcasting. In my experience, I’ve never been asked to bill off their numbers which aligns with few of them filter out any of the fires received by the podcast ad server.

But if they’re not filtering and everything is fired server side, how is their discrepancy?

Your podcast ad server will take time to vet an impression before reporting it in their first party numbers. For a podcast to be played on the listeners device, there are multiple requests involved and not all of them count as impressions or even a download. The IABv2 specifications focus on counting an impression once it confirms that for a given episode, in a single day, the IP/user-agent pair has downloaded enough of the podcast file to pass where the ad is located. It can take some ad servers upwards of one hour from the time of receiving the initial request to validate it internally and then fire the third party tracking pixel. That delay alone can result in impressions for the ad server being counted on day one, while the vendor shows them on day two.

How To Solve Discrepancy

Discrepancy matters because every impression lost down the funnel is one less piece of insight you can glean off of it, regardless of how you choose to use it. In digital, getting to zero discrepancy is just not going to happen, but we have all of the tools right at our disposal to make it happen in podcasting.

If your ad server passes the following two values to all third party tags, and the tag vendors properly ingests those values, we could see the discrepancy drop to 0.

Unique Identifier

Super simple, super effective. It’s adding a macro to every pingback that looks like uid={uid} to the tag URL. UID or Unique ID should focus on the ad servers unique identification of what makes that specific download unique in their methodology and not necessarily anything to do with a unique user.

If I count 100 impressions as the ad server and you count 75 as the vendor, how do we resolve that? Easiest way to do it is to match them up and see what we can learn about those 25. Without a value uniquely differentiating each of the 100 fires from each other, there’s no way to know which 25 didn’t fire to start digging in. Unique Identifier doesn’t have to be a new value, it just needs to solve this problem when expanded further: Can I compare 1 million impressions together and identify the 100k that are not firing?

This macro solves for the times when a tag fails its call or the ad server fails to make the call. Nothing is perfect, but this helps streamline resolution of the issues.

Timestamp of Impression

Another straight forward fix. Honor the timestamp passed by the ad server, to the tag vendor, as the exact time of the impression. Many vendors already offer a timestamp or ord parameter in their tag so the work here would be on the ad server to confirm the data is sent correctly.

As everything is handled server-side for your third party tag, your ad servers timestamp of when the impression occurred will state the exact time the impression happened even if it took it an hour or two to determine it was valid. If we’re already accepting the ad server is firing the tag when they count the impression, and that they’re forward the third party the listeners IP and user agent, why wouldn’t we accept the timestamp as accurate and match that exactly between ad server and third party vendor?

Wrapping It Up

We collectively own all the tools to resolve this, restoring numerous hours back to our engineering teams and account managers, by accepting that this is not digital and everything is fired server side. The more we lean into the differences in podcast ad tech like this, the stronger the space becomes.

Sponsors

Our sponsors support a collaborative and educated podcasting space and are committed to raising up the whole industry together. Find out how you can become a sponsor today

Bryan Barletta (He/Him) is the voice behind Sounds Profitable. He started in the adtech industry so long ago that they used to ask, “Mobile advertising? Like on taxis?” (2008) before shifting into podcasting in 2015. His goal is to make in-depth adtech more accessible for readers and listeners. And, yes, it is sunny and warm in Austin today.

Get the latest from podcasting's adtech world with our free weekly newsletter

Get the weekly newsletter by email, free