What happens when we change our SKAN conversion value configuration? Why is there a 'cool-down period'?

No matter which SKAdNetwork implementation method you use (MMP SDK, vendor SDK like Facebook or Firebase, or even your own code), there will always be a 'cool-down period' when you make changes to your SKAN conversion value configuration. Different parties deal with this period in different ways (for example, Facebook currently requires you to pause your campaigns for 3 days before making changes if you use their Event Manager tool), but the issue exists for everyone.

To understand why, it's important to know how the built-in SKAN timers affect your data:

  • Conversion window timer. This timer starts at 24 hours when the app is launched for the first time. It resets back to 24 hours each time the conversion value is successfully updated. Once this timer expires, all data in the postback is final and cannot be updated.
  • Randomization delay. This begins when the conversion window timer expires. Its length is up to 24 hours, arbitrarily chosen by iOS. At the end of this delay, the device sends the postback.

(Note: these terms are not official from Apple's documentation, but we find them useful to avoid confusion)

When you make changes to your conversion-value configuration (via an update on the Branch dashboard, modifying your custom in-app code, or any other tool you may be using), it can take up to 48 hours for the changes to take effect everywhere, and the impact depends on where the user is at the time you make the change:

  • If the user is still within the Conversion window timer, then your changes may (or may not) cause conversion value updates to happen at different points than when the user initially installed the app.
  • If the user is within the Randomization delay, your changes won't change anything on the device, but you have no way to know this is the case when you receive the postback.

Here's an example of how that can create issues in your data:

  1. SKAN conversion value 10 = registration
  2. User installs app and registers.
  3. Conversion window timer expires and Randomization delay begins.
  4. You update your configuration so that SKAN conversion value 10 = purchase
  5. User's device sends SKAN postback.

In this example, you will receive a postback with SKAN conversion-value: 10 (assuming this value passes Apple's secret privacy thresholds), but due to the design of SKAdNetwork, it is impossible for you to know that the value was set before you updated your configuration.

This is an unavoidable issue with SKAdNetwork. Advertisers simply need to ensure they are strategic about when/how they make changes to their conversion value mapping, and be prepared for up to 48 hours of unsettled data when they do so.

Additional Resources