> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kontext.so/llms.txt
> Use this file to discover all available pages before exploring further.

# SKAdNetwork

> Configure SKAdNetwork identifiers on iOS so advertisers can attribute installs from your video ads.

[SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) (SKAN) is Apple's privacy-preserving install-attribution framework. Every advertiser running app-install campaigns on iOS has its own SKAdNetwork identifier. For an advertiser to attribute an install back to one of your ads, its identifier must be listed in your app's `Info.plist`.

> [!NOTE]
>
> SKAdNetwork is iOS-only. Android needs no equivalent configuration.

## What to add to `Info.plist`

### Kontext's own identifier (always required)

Kontext also serves campaigns directly and attributes their installs through its own registered ad network. Add Kontext's identifier regardless of which advertisers are active:

```xml theme={null}
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mp7rpxwdrx.adattributionkit</string>
  </dict>
</array>
```

Without this entry, ads still serve and render normally, but installs from directly-served campaigns are silently never attributed. There is no error or warning.

### Advertiser identifiers

During onboarding we provide the list of SKAdNetwork identifiers for every demand partner active in our network. Append them under `SKAdNetworkItems`:

```xml theme={null}
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>XXX.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>YYY.skadnetwork</string>
  </dict>
  <!-- Add all identifiers we provided here -->
</array>
```

> [!WARNING]
>
> If your app already has an `SKAdNetworkItems` array from another ad SDK, **append** our identifiers to it. Don't replace it, or you break attribution for the other networks. Apple deduplicates identifiers, so adding the same one twice is harmless.

> [!WARNING]
>
> A missing identifier means installs attributable to that advertiser are silently not counted: lost revenue without a visible error. Add **all** identifiers we provide, not a subset.

## How the SDK uses it

The SDK reads `SKAdNetworkItems` from `Info.plist` at startup and forwards the list to our ad server with its requests. It never modifies the array. The server tells each advertiser whether it can attribute installs from your app.

When we add a demand partner, you get an updated list. Add the new identifier and ship a build; identifiers are baked into the binary and cannot be changed remotely.

## Attribution during the ad

Once the identifiers are listed, the rest is handled by Apple's `SKAdNetwork` API and the advertiser's measurement. The SDK registers the ad impression with Apple as part of showing the ad; nothing to call from your code.

## Troubleshooting

* **An advertiser reports zero installs although their ads ran.** Their identifier may be missing from `Info.plist`, or the build with the updated list hasn't shipped.
* **Need the current list?** Contact [support@kontext.so](mailto:support@kontext.so).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.