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

# Response for all versions of SKAN

SKAdNetwork (SKAN) is Apple’s privacy-preserving framework for attributing iOS app installs without relying on user information or device information. Airbridge’s SKAdNetwork Configuration API provides ad channels with conversion values and the event mapped to each conversion value. Ad channels can then decode the postbacks they receive. The API returns as a nested JSON.

Marketers can modify the mapping of conversion values and events at any time. Therefore, ad channels are recommended to call the SKAdNetwork Configuration API on a daily basis and keep the conversion value schema up to date.

The following table describes the information a SKAN postback may contain, and how the information is structured and labelled.

Note that Airbridge has two versions of **\[SKAN Conversion Value Rule]** page, one of which supports all versions of SKAN, including both 3.0 or 4.0. The following table and the SKAdNetwork Configuration API are only applicable to the all-version page. For more information the **\[SKAN Conversion Value Rule]** page, refer to this [article](/en/guides/skadnetwork-4).

```text GET theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
https://api.airbridge.io/skadnetwork/v1/conversion-value-schema?api_key={API_KEY}&response_format={RESPONSE_FORMAT}&itunes_app_id={ITUNES_APP_ID}
```

<h2 id="response-for-all-versions-of-skan-request">
  Request
</h2>

***

<h3 id="response-for-all-versions-of-skan-headers">
  Headers
</h3>

<ParamField header="Accept-Language" type="string">
  You can specify the language to use for API requests and responses. It follows the ISO-639-1 format.
</ParamField>

<ParamField header="Content-Type" type="string">
  Represents the media type of the resource. Defaults to `application/json`.
</ParamField>

<h3 id="response-for-all-versions-of-skan-query-params">
  Query Params
</h3>

<ParamField query="itunes_app_id" type="string" required>
  [iOS App Store ID](https://developer.apple.com/documentation/appstoreconnectapi/read_app_information).

  ex) 1370724782
</ParamField>

<ParamField query="response_format" type="string" required>
  The names of Integrated Channels are shown using the Airbridge display name.

  ex) tiktok, facebook.business

  **Guide)** [Ad Channels Integrated with Airbridge](/en/guides/integrated-ad-channels-list)
</ParamField>

<ParamField query="api_key" type="string" required>
  API key that Airbridge provides to authenticated ad channels.
</ParamField>

<RequestExample>
  ```shellscript Request theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  curl -X GET 'https://api.airbridge.io/skadnetwork/v1/conversion-value-schema?api_key={API_KEY}&response_format={RESPONSE_FORMAT}&itunes_app_id={ITUNES_APP_ID}' \
    -H 'Accept-Language: ko' \
    -H 'Content-Type: application/json'
  ```
</RequestExample>

<h2 id="response-for-all-versions-of-skan-response">
  Response
</h2>

***

### 200

<ResponseField name="config_type" type="string" />

<ResponseField name="default_currency" type="string" />

<ResponseField name="last_update_time" type="number" />

<ResponseField name="postbacks" type="object[]">
  <Expandable title="child attributes">
    <ResponseField name="postbacks[0].postback_sequence_index" type="number" />

    <ResponseField name="postbacks[0].conversion_schema" type="object">
      <Expandable title="child attributes">
        <ResponseField name="postbacks[0].conversion_schema.fine" type="object">
          <Expandable title="child attributes">
            <ResponseField name="postbacks[0].conversion_schema.fine.schema" type="object[]">
              <Expandable title="child attributes">
                <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].conversion_value" type="string" />

                <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events" type="object[]">
                  <Expandable title="child attributes">
                    <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].event_name" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].partner_event_name" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].measurement_type" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].values" type="object">
                      <Expandable title="child attributes">
                        <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].values.min_amount" type="number" />

                        <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].events[0].values.max_amount" type="number" />
                      </Expandable>
                    </ResponseField>
                  </Expandable>
                </ResponseField>

                <ResponseField name="postbacks[0].conversion_schema.fine.schema[0].is_overlapped" type="string" />
              </Expandable>
            </ResponseField>

            <ResponseField name="postbacks[0].conversion_schema.fine.lock_window" type="string" />
          </Expandable>
        </ResponseField>

        <ResponseField name="postbacks[0].conversion_schema.coarse" type="string">
          <Expandable title="child attributes">
            <ResponseField name="postbacks[0].conversion_schema.coarse.schema" type="object[]">
              <Expandable title="child attributes">
                <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].conversion_value" type="string" />

                <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events" type="object[]">
                  <Expandable title="child attributes">
                    <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].event_name" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].partner_event_name" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].measurement_type" type="string" />

                    <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].values" type="object[]">
                      <Expandable title="child attributes">
                        <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].values.min_count" type="string" />

                        <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].events[0].values.max_count" type="string" />
                      </Expandable>
                    </ResponseField>
                  </Expandable>
                </ResponseField>

                <ResponseField name="postbacks[0].conversion_schema.coarse.schema[0].is_overlapped" type="string" />
              </Expandable>
            </ResponseField>

            <ResponseField name="postbacks[0].conversion_schema.coarse.lock_window" type="string" />
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### 401

### 404

### 404

Not Found: URL.

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  {
    "postbacks": [
      {
        "conversion_schema": {
          "fine": {
            "schema": [
              {
                "events": [],
                "is_overlapped": false,
                "conversion_value": "0"
              },
              {
                "events": [
                  {
                    "values": {
                      "max_amount": 1,
                      "min_amount": 0
                    },
                    "event_name": "airbridge.ecommerce.order.completed",
                    "measurement_type": "engagement",
                    "partner_event_name": "adnetwork_mobile_purchase"
                  },
                  {
                    "values": {
                      "max_amount": 10000,
                      "min_amount": 0
                    },
                    "event_name": "airbridge.ecommerce.order.completed",
                    "measurement_type": "revenue",
                    "partner_event_name": "adnetwork_mobile_purchase"
                  }
                ],
                "is_overlapped": false,
                "conversion_value": "1"
              }
            ],
            "lock_window": null
          },
          "coarse": {
            "schema": [
              {
                "events": [
                  {
                    "values": {
                      "max_amount": 4,
                      "min_amount": 3
                    },
                    "event_name": "app_open",
                    "measurement_type": "retention",
                    "partner_event_name": null
                  }
                ],
                "is_overlapped": null,
                "conversion_value": "low"
              }
            ]
          }
        },
        "postback_sequence_index": 0
      }
    ],
    "config_type": "SKAN 4.0",
    "default_currency": "KRW",
    "last_update_time": 1700000000
  }
  ```

  ```json 401 theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  {
    "type": "about:blank",
    "title": "UNAUTHORIZED",
    "detail": "Unauthorized.",
    "status": 401,
    "traceId": "1-000000-000000000000000",
    "instance": null
  }
  ```

  ```json 404 theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  {
    "type": "about:blank",
    "title": "NOT_FOUND",
    "detail": "There is no such app. Please check.",
    "status": 404,
    "traceId": "1-000000-000000000000000",
    "instance": null
  }
  ```

  ```json 404 theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  {
    "type": "about:blank",
    "title": "url_disabled_by_toggle",
    "detail": "URL has been disabled. Turn on the toggle button to reactivate.",
    "status": 404,
    "traceId": "1-000000-000000000000000",
    "instance": null
  }
  ```
</ResponseExample>
