Ditching IP Address Measurement - Rationale
I would like to propose that this repo become the collaboration point for a move from measuring downloads to measuring true listens. Based on the industry-wide move to block tracking, and the recent announcement of Private Relay by Apple, I believe it is time to start designing what comes next when IP addresses become totally unreliable.
It has been said that true listening measurement is either not possible outside of streaming silos, or not feasible because it would require all apps to support it. I think that both of those are untrue. Apps are already implementing Podcasting 2.0 namespace features, which shows that podcast app developers are more than willing to engage and implement new technology. It just has to be in their customers' best interests. Privacy is top of mind for them. So, this is a point where collaboration makes a lot of sense.
The _guid Parameter
As a start, I'd like to propose the "_guid" url parameter be attached, by all apps, to all enclosure downloads. A _guid looks like this:
GET https://example.com/podcast/episode1.mp3?_guid=6975bcb2-32b5-4d16-b002-15a68ada2234
Whenever a listener on a podcast app taps the play button on an episode, a unique sha256 GUID value is created and sent along with the enclosure request. This GUID is then pinned internally within the app to that user, that podcast, that episode. If the user ever listens to that episode again or picks up from a point that they left off earlier, the same GUID parameter is sent along with the enclosure url in the GET request. This GUID statically represents this unique listen by this listener, and always will.
In this way, a unique anonymous value is born the first time a listener plays an episode. That’s a truly unique listen. And, it only gets counted once - whether that listener is at the office, at home, or out in the world. Because it doesn’t rely on an IP address, there is no need for complex IAB IP-range source filtering. The app is in control and ensures the value is reliably delivered.
With a scheme like this, listeners get privacy and podcasters gets truthful listener numbers.
Fraud
Couldn't someone game the numbers by generating fake downloads with unique GUID's? Sure they could. But, that can be done already with IAB downloads. Fraud detection is always part of the game in the world of digital advertising and attribution. The aim isn't to design a system that is un-gameable. That isn't possible. The goal is having a system that's simple and transparent enough to make fraud detection a fairly straightforward process.
But, the larger issue is that, if IP addresses aren't a reliable measurement source in the future, an in-band solution such as this will be the only way to measure. We should accept that, and build safeguards around it instead of wishing it were different.
Larger Effort
I envision this as, hopefully, the beginning of a larger effort to design a standard set of open url parameters and request headers to be used for listener attribution. Formats like the prepended underscore seen above can be implemented to avoid collisions with existing url parameters.
I'm seeing url parameters being used like this already in the wild for attribution. But, they are all proprietary or seem to be web only. An open, industry-wide standard would be the way forward.
Ditching IP Address Measurement - Rationale
I would like to propose that this repo become the collaboration point for a move from measuring downloads to measuring true listens. Based on the industry-wide move to block tracking, and the recent announcement of Private Relay by Apple, I believe it is time to start designing what comes next when IP addresses become totally unreliable.
It has been said that true listening measurement is either not possible outside of streaming silos, or not feasible because it would require all apps to support it. I think that both of those are untrue. Apps are already implementing Podcasting 2.0 namespace features, which shows that podcast app developers are more than willing to engage and implement new technology. It just has to be in their customers' best interests. Privacy is top of mind for them. So, this is a point where collaboration makes a lot of sense.
The _guid Parameter
As a start, I'd like to propose the "_guid" url parameter be attached, by all apps, to all enclosure downloads. A _guid looks like this:
GET https://example.com/podcast/episode1.mp3?_guid=6975bcb2-32b5-4d16-b002-15a68ada2234
Whenever a listener on a podcast app taps the play button on an episode, a unique sha256 GUID value is created and sent along with the enclosure request. This GUID is then pinned internally within the app to that user, that podcast, that episode. If the user ever listens to that episode again or picks up from a point that they left off earlier, the same GUID parameter is sent along with the enclosure url in the GET request. This GUID statically represents this unique listen by this listener, and always will.
In this way, a unique anonymous value is born the first time a listener plays an episode. That’s a truly unique listen. And, it only gets counted once - whether that listener is at the office, at home, or out in the world. Because it doesn’t rely on an IP address, there is no need for complex IAB IP-range source filtering. The app is in control and ensures the value is reliably delivered.
With a scheme like this, listeners get privacy and podcasters gets truthful listener numbers.
Fraud
Couldn't someone game the numbers by generating fake downloads with unique GUID's? Sure they could. But, that can be done already with IAB downloads. Fraud detection is always part of the game in the world of digital advertising and attribution. The aim isn't to design a system that is un-gameable. That isn't possible. The goal is having a system that's simple and transparent enough to make fraud detection a fairly straightforward process.
But, the larger issue is that, if IP addresses aren't a reliable measurement source in the future, an in-band solution such as this will be the only way to measure. We should accept that, and build safeguards around it instead of wishing it were different.
Larger Effort
I envision this as, hopefully, the beginning of a larger effort to design a standard set of open url parameters and request headers to be used for listener attribution. Formats like the prepended underscore seen above can be implemented to avoid collisions with existing url parameters.
I'm seeing url parameters being used like this already in the wild for attribution. But, they are all proprietary or seem to be web only. An open, industry-wide standard would be the way forward.