# Impression Level Data

DT Exchange enables you to access detailed information for each impression through the impressions callback APIs. The information includes, for example, which demand source served the ad and its expected or exact revenue.&#x20;

The following table describes Impression Level Data attributes.

| Property Name      | Description                                                                                                                                                                                                                                                                                                                |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `demandSourceName` | <p>Identifies the demand source name of the buy-side/demand-side entity that purchased the impression:<br></p><ul><li>When mediated networks win an impression, the mediated network's name appears.</li><li>When a DSP buying through the programmatic marketplace wins the impression, the DSP's name appears.</li></ul> |
| `country`          | Identifier of the country of the ad impression (in ISO country code).                                                                                                                                                                                                                                                      |
| `sessionID`        | A unique identifier for a specific impression.                                                                                                                                                                                                                                                                             |
| `advertiserDomain` | A unique identifier for a set of campaigns for the same advertiser.                                                                                                                                                                                                                                                        |
| `creativeID`       | <p>A unique identifier that represents the creative in the bid response.<br>This can be useful when a particular creative causes user experience issues.</p>                                                                                                                                                               |
| `campaignID`       | A unique identifier that represents a Campaign.                                                                                                                                                                                                                                                                            |
| `pricingValue`     | The impression’s net payout value                                                                                                                                                                                                                                                                                          |
| `pricingCurrency`  | The impression’s currency type                                                                                                                                                                                                                                                                                             |
| `duration`         | The duration of the video in seconds, for example, 15 seconds.                                                                                                                                                                                                                                                             |
| `Skippable`        | <p>An indication of whether the video is skippable or not<br>(<code>1</code> = true, <code>0</code> = false).</p>                                                                                                                                                                                                          |

## Impression Data Callback Methods <a href="#h_01jyeypwhwey8s2nyh4qwtqe8t" id="h_01jyeypwhwey8s2nyh4qwtqe8t"></a>

Run the following required API to implement the callback.

{% code title="Objective-C" %}

```objective-c
- (void)adDidShowWithImpressionData:(IAImpressionData * _Nonnull)impressionData
                      withAdRequest:(IAAdRequest * _Nonnull)adRequest;
```

{% endcode %}

### Subscription <a href="#h_01jyf03zcmw2drh3h82ygebxea" id="h_01jyf03zcmw2drh3h82ygebxea"></a>

{% code title="Objective-C" %}

```objective-c
IASDKCore.sharedInstance.globalAdDelegate = self;
```

{% endcode %}

### Implementation <a href="#id" id="id"></a>

{% code title="Objective-C" %}

```objective-c
#pragma mark - IAGlobalAdDelegate

- (void)adDidShowWithImpressionData:(IAImpressionData * _Nonnull)impressionData
                      withAdRequest:(IAAdRequest * _Nonnull)adRequest {
    NSLog(@"\n\nAd did show with impression data\
          \ndemandSourceName: %@\
          \ncountry: %@\
          \nsessionID: %@\
          \nadvertiserDomain: %@\
          \ncreativeID: %@\
          \ncampaignID: %@\
          \npricing value: %@\
          \npricingCurrency: %@\
          \nduration: %@\
          \nisSkippable: %@\
          \nspotID: %@\
          \nunitID: %@",
          impressionData.demandSourceName,
          impressionData.country,
          impressionData.sessionID,
          impressionData.advertiserDomain,
          impressionData.creativeID,
          impressionData.campaignID,
          impressionData.pricingValue,
          impressionData.pricingCurrency,
          impressionData.duration,
          impressionData.skippable ? @"YES" : @"NO",
          adRequest.spotID,
          adRequest.unitID);
    NSLog(@"\n");
}
```

{% endcode %}

<br>


---

# 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/publishers/sdk-configuration/integrating-the-ios-sdk/impression-level-data.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.
