# Custom Product Pages

DT Exchange supports Apple's [Custom Product Pages (CPP)](https://developer.apple.com/app-store/custom-product-pages/) in response to clicks initiated on StoreKit-based iOS components, including SKOverlay and StoreKit. Additionally, DTX allows demand-side platforms (DSPs) to attach a specific CPP Product Page ID to a bid response for use in click handling and redirection. For more information, see [Handling Custom Product Pages](/dt-exchange/advertisers/click-options/handling-click-events-in-ios.md#handling-custom-product-pages).

{% hint style="info" %}
DT Exchange supports `CustomProduct` on iOS 15 or later.
{% endhint %}

### Supported Features

* DSPs use native iOS StoreKit-based components.
* App developers create distinct versions of their App Store product page, each with a unique design. These pages support individual performance measurement.
* DSPs can bid with a unique CPP value per impression to specify a particular product page ID.

### App Store Connect Requirements

To support CPP:

* DT supply must run on iOS 15 or later.
* The DT Exchange SDK version must be 8.2.3 or later.

### Object: BidRequest.imp.ext.skadn

When these conditions are met, a new field labeled `productpage` with a value of `1` (DT oRTB reference) is included under `BidRequest.imp.ext.skadn.r`.

| Attribute     | Always Passed | Description                                                                                                                                                           |
| ------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `productpage` | No            | This attribute flags supply supporting the Custom Product Page functionality; it passes with the value of `1` when eligible and will not be passed when not eligible. |

For more information, see [Object: BidRequest.imp.ext.skadn](https://docs.digitalturbine.com/dt-exchange/advertisers/dt-exchange-openrtb-2.5-specs/pages/012e30d5e5df72039b0909e2d9893bc69245cff3#object-bidrequest.imp.ext.skadn) in DT Exchange OpenRTB 2.5 Specs.

### Object: BidResponse.seatbid.bid.ext.skadn

DSPs can set the custom product page as part of the bid response using the `productpageid` field under `BidResponse.seatbid.bid.ext.skadn`, with the relevant product page ID.

| Attribute       | Required | Description                            |
| --------------- | -------- | -------------------------------------- |
| `productpageid` | No       | Product Page ID to direct to on click. |

For more information, see [Bid.ext.skadn (SKAdNetwork)](https://docs.digitalturbine.com/dt-exchange/advertisers/dt-exchange-openrtb-2.5-specs/pages/012e30d5e5df72039b0909e2d9893bc69245cff3#bid.ext.skadn-skadnetwork) in DT Exchange OpenRTB 2.5 Specs.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalturbine.com/dt-exchange/advertisers/dt-exchange-openrtb-2.5-specs/custom-product-pages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
