SKAN conversion values
Update SKAdNetwork / AdAttributionKit conversion values from your game. iOS-only — no-op on Android and Editor.
What is SKAN?
SKAdNetwork (SKAN) is Apple's privacy-preserving install attribution framework. Ad networks receive postbacks from iOS with a conversion value (0-63) that encodes post-install behavior (revenue tier, level reached, etc.). Reflect handles postback receipt and decoding server-side — the SDK's job is to update the conversion value at the right moments in your app.
API
// Simple — just a fine value (0-63)
ReflectSDK.UpdateConversionValue(12);
// Full — fine value + coarse + lock window + callback
ReflectSDK.UpdateConversionValue(
fineValue: 42,
coarseValue: "high", // "low", "medium", "high", or null
lockWindow: false, // true = lock the current postback window
onComplete: (ok, err) => {
if (!ok) Debug.LogWarning("SKAN update failed: " + err);
}
);Platform behavior
| Platform | Behavior |
|---|---|
| iOS 17.4+ | Uses AdAttributionKit (Apple's successor to SKAN) |
| iOS 16.1+ | Uses SKAdNetwork 4.0 — supports fine value, coarse value, and lock window |
| iOS 15.x | Legacy SKAN — fine value only, coarse value ignored |
| Android / Editor | No-op (Editor logs the call for debugging) |
When to call it
Call UpdateConversionValue whenever the user crosses a meaningful threshold:
// Example: encode revenue tiers
void OnPurchase(double revenueUsd) {
int cv = revenueUsd >= 50 ? 63
: revenueUsd >= 20 ? 48
: revenueUsd >= 10 ? 32
: revenueUsd >= 5 ? 16
: revenueUsd >= 1 ? 8
: 4;
ReflectSDK.UpdateConversionValue(cv, coarseValue: cv >= 32 ? "high" : "medium");
}
// Example: encode level progress
void OnLevelComplete(int level) {
int cv = Math.Min(level, 63);
ReflectSDK.UpdateConversionValue(cv);
}Conversion value schema (admin)
In the admin panel, go to SKAN → CV Schema to define how Reflect decodes the 0-63 value back into human-readable metrics (revenue ranges, engagement tiers). This mapping is used when displaying SKAN reports and doesn't affect the SDK.