+2 votes
What's the best way to hack the conversion value field from SKAdNetwork?

 

I'm posting this question on behalf of an anonymous iOS 14 survey from the Mobile Dev Memo Slack channel
by (560 points)

1 Answer

0 votes

I don't know that there's any way to "hack" it, per se, but it's certainly possible to use the Conversion Value field wisely.

image

First, a primer:

  • The Conversion Value parameter in the SKAdNetwork postback is a 6-bit value, meaning it takes the form of six 1 or 0 bits (eg. 010101). Only 64 values are possible with a six-bit value (2^6);
  • The Conversion Value is updated using the native iOS updateConversionValue(_:) method;
  • The Conversion Value is set via a convoluted timer logic (described in detail here), but at a high level: the highest Conversion Value updated by the app for the user within a rolling 24-hour timer is sent via the SKAdNetwork postback. Only one postback is sent via SKAdNetwork, meaning only one Conversion Value is ever captured for an attributed user.

What's the best way to utilize the Conversion Value parameter so as to optimize campaign performance?

First, it's important to recognize the tradeoff between value captured in the Conversion Value ("value" here referring to monetization history / potential of a given user) and lapsed time between install and postback. The sooner an ad network receives a signal that a given user is a (potential) monetizer, the sooner it can validate its traffic targeting to reach more users like that. So the advertiser should strive to have the Conversion Value sent via the postback as soon as possible after the user's monetization potential has been sufficiently vetted.

But obviously it takes time to vet a user's monetization potential, and the Conversion Value can only be sent once. I think a sophisticated Conversion Value strategy involves associating real-time LTV estimates for users with various cumulative events that they have completed in the app, and encoding those LTV estimates through the Conversion Value. Obviously these estimates would have to be grouped into tiers, since the Conversion Value can only take 64 values, but that still provides a great degree of freedom and specificity in defining groups (eg. 000001 is users expected to spend $0.01 - $1.99, etc., 000011 is users expected to spend $2.00 - $4.99, etc.).

by (12.7k points)