privacycg / private-click-measurement

Private Click Measurement
https://privacycg.github.io/private-click-measurement/
200 stars 8 forks source link

Handling web conversions that started in-app #49

Closed bedfordsean closed 3 years ago

bedfordsean commented 4 years ago

As shown in our recently shared data in the web-adv group, we see that 69% of conversions happen on the "same device, same user agent" where the impression happened, this includes cases where the ad impression was shown in a native app, but the conversion happened in our in-app web view.

With the current measurement proposal described here, these conversions would not be measured since the ad click didn't occur on an HTML element rendered in the browser. We see from our data and in a recent study commissioned by Apple that states that an estimated $45B/$519B is enabled by in-app advertising, that this is not an uncommon scenario.

We would like to open up a conversation on the topic of addressing this significant share of conversions, specifically focusing on journeys where the ad was served in an app with a subsequent conversion on the web.

We believe that the majority of these conversions could be measurable if it were possible to register an ad click that occurred within a native application, much like a click on an \<a> tag in current proposals will register that click within the measurement and reporting framework as described in this repository. If this were possible, subsequent conversions could be tracked in either in-app web views, or web browsers on the same device, giving a fuller picture to publishers and advertisers.

Can you help us find a solution for mobile app publishers, who want to find a privacy-preserving way of measuring conversions? Specifically where a conversion occurs on a website that was a result of traffic sent from an ad click within a native application?

bedfordsean commented 4 years ago

@johnwilander what are your thoughts on this? I know it's not a 100% web use case but it seems like this is a common enough scenario that can only be resolved by Apple across both iOS and WebKit renderers (either Safari/WKWebView).

We had some thoughts about how we may be able to achieve this in as close a possible way to how PCM works on web-only:

  1. Native ad is rendered in an app however the app developer desires (similar to how a web ad would be rendered)
  2. When a user clicks the ad, if it's an app install ad, this is handled by SKAdNetwork as per recent WWDC announcements.
  3. If not an install ad though, it's likely a website will be opened, either as a web view within the app or alternatively by a flip across to the Safari (or other browser app) on the device. To handle this, Apple could augment the openURL functions in iOS and WKWebView with an "adcampaignid" parameter.
  4. From this point on, the browser or web view consume the "adcampaignid" and run PCM as described in this proposal.

I believe that the only change here would be to amend the iOS APIs for opening URLs with "adcampaignid".

johnwilander commented 3 years ago

I'm sure you've seen it but Apple shipped support for PCM app-to-web this spring: https://webkit.org/blog/11529/introducing-private-click-measurement-pcm/ which showcases one way of doing this. As you point out, the app part is not a proposed standard.

bedfordsean commented 3 years ago

Thanks - yes have seen this.

Our main feedback is that it would be nice if there was parity of support within in-app webviews like SFSafariViewController and WKWebView, although agreed that's an implementation detail on iOS rather than part of the proposed standard.