# DSP Test App

The Digital Turbine Exchange Test App is a self-service test tool that allows you to test your integration and creatives on DT Exchange. This tool enables you to validate components such as the close button, video skip button, countdown timer, video skipability standards, and close button delays.

To validate ads on the DT Demand Test App, you must have access to the DT self-service web dashboard and the [DT Demand Web Tool](https://forest.fyber.com/demand#/). Once you have the credentials, configure the Web Tool and the Demand Test App. The testing process includes the following steps:

* [Step 1: Download the Demand Test App](#step-1-download-the-demand-test-app).
* [Step 2: Upload Ads using the Creative Tester](#step-2-upload-a-ds-using-the-creative-tester).
* [Step 3: Test the Ad on your device](#step-3-test-the-a-d-on-your-device).

The following Ad Formats are available for testing:

* Banner
* Interstitial
* Rewarded
* Native (Android only)<br>
  * Native - Feed
  * Native - Dialog
  * Native - FS

## Ad Testing Methods

The Demand Test App supports two testing methods:

* **Ad Lifecycle**: Tests end-to-end live integrations. DT Exchange sends a bid request to your servers and guarantees the winning of your bid response. The ad you chose to serve is displayed in the test app for you to validate.
* **Creative Tester**: Tests a mock bid response that you can upload in advance using the web tool. You can test the uploaded ad in the test app.

{% hint style="info" %}
You can access only the **Creative Tester** tool if your integration is not yet live. Once your OpenRTB integration goes live, you can use the **Ad Lifecycle** tool.
{% endhint %}

The following table describes the features of each testing method.

| FEATURE                                                                                                                                                                                                           | CREATIVE TESTER                 | AD LIFECYCLE                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------- |
| <p>Review the bid request parameters, including custom extensions.<br>For more details about the bid request structure, see <a href="dt-exchange-openrtb-2.5-specs">DT's OpenRTB Specs</a>.</p>                   |                                 | <i class="fa-check">:check:</i> |
| Test specific creatives before launching a new integration or a new creative format.                                                                                                                              | <i class="fa-check">:check:</i> |                                 |
| Check server-to-server notifications, such as `nurl`, `burl`, and `lurl`.                                                                                                                                         |                                 | <i class="fa-check">:check:</i> |
| Check ad functionality, including VAST quartile tracking, impression tracking, click tracking, attribution tracking, load-time performance, MRAID actions, VAST waterfall for media files and companion ads, etc. | <i class="fa-check">:check:</i> | <i class="fa-check">:check:</i> |
| Confirm proper rendering, resizing, and centering of webview margins.                                                                                                                                             | <i class="fa-check">:check:</i> | <i class="fa-check">:check:</i> |

## Step 1: Download the Demand Test App

To download the Demand Test App:

1. Log in to the [Demand Web Tool](https://forest.fyber.com/demand) with your user credentials.
2. Click **App Links**.\
   The iOS and Android links appear.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/Pk1Exx6iokIzSN4xOono/4419870805137" alt=""></div>

3. Download and install the required platform on your device.

## Step 2: Upload Ads Using the Creative Tester

{% hint style="info" %}
To test an ad using **Ad Lifecycle** only, continue to [Step 3](#h_01JQNHT2WPEG2ZKVF1WGANMXTY).
{% endhint %}

To upload ads and test them on the Demand Test App:

1. In the [Demand Web Tool](https://forest.fyber.com/demand), click **CREATIVE TESTER→+ CREATE** to add a new creative.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/0KkZ1FoCgHcPaprsZZX9/24260693434780" alt=""></div>

2. In the **description** field, add a description for your creative.
3. To add openRTB parameters, click the **+** (plus) icon.
4. In the **Key** and **Value** fields, enter DT-supported parameters described in [DT's OpenRTB Specs](https://docs.digitalturbine.com/dt-exchange/advertisers/dt-exchange-openrtb-2.5-specs).
5. In the **markup** field, paste the HTML or VAST ad markup, similar to the content of the `adm` field in an Open RTB response to your ad markup.
6. Click **SAVE**.\
   A **QR code** appears on the Web Tool.

## Step 3: Test the Ad on Your Device

To test ads:

1. In the [Demand Web Tool](https://forest.fyber.com/demand), access the QR code for the test ad:
2. To test an **Ad Lifecycle**, click **Ad Lifecycle**.\
   The QR Code Appears.
3. To test a **Creative**, navigate to **Creative→Creative Tester** and click **Show** for the required creative.\
   The QR Code Appears.
4. To test the app on your device, open the **Demand Test App** and follow the instructions in the appropriate tab below.

{% tabs %}
{% tab title="Android" %}
To test ads on an Android device:

1. Tap the **QR code** icon, then scan the QR code in the **Web Tool**.
2. Select the required ad type from the dropdown list.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/waVFEKqyUi8ujXx01GJ6/24260671004828" alt=""></div>

3. To test **Banner** ads, tap **Load Banner**.
4. To test **Interstitial** ads, tap **Load Interstitial**, then **Show Interstitial**.
5. To test **Rewarded** ads, tap **Load Rewarded**, then **Show Rewarded**.
6. To test **Native** ads, select the required Native Ad, tap **Generate Token**, tap **Load Native Ad**, and then tap **Show Native Ad**.

{% hint style="info" %}
Native ads are only available through SDK Bidding mediation. In SDK Bidding, DT Exchange must first generate a token for the Mediation SDK to use when identifying the request to the server.

For more information, see [Generating a Token](https://docs.digitalturbine.com/dt-exchange/publishers/sdk-configuration/integrating-the-android-sdk/android-ad-formats/native-ads#h_01k83r5g56wgkfeaw56fabj18v).
{% endhint %}

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/g23IXV1DtCFwRWN2zZYq/24260671006876" alt=""></div>

{% hint style="success" %}
To inspect and remove devices with Chrome Developer Tools, see [Chrome DevTools: Devices](https://developer.chrome.com/docs/devtools/settings/devices) for more information.
{% endhint %}
{% endtab %}

{% tab title="iOS" %}
To test ads on an iOS device:

1. Tap the <i class="fa-plus">:plus:</i> (plus) icon in the top-left corner, then tap **New Ad Unit**.
2. Select the required ad format from the **Ad Format** dropdown list.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/GGRlz3K0hOpkbKpvONag/24260671007644" alt=""></div>

3. Tap the **QR code** icon, then scan the QR code in the **Web Tool**.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/eoriaO1MaRFkgGkwNy9c/24260693451164" alt=""></div>

4. Tap **Save Ad Unit**.

{% hint style="info" %}
All added units appear in **Saved Ads** on the **Home Page**, allowing you to test ads without scanning the QR code each time.
{% endhint %}

5. Tap **Saved Ads** and select the required ad.

<div align="left" data-with-frame="true"><img src="https://content.gitbook.com/content/8KSLu5HNiyDWpvGRZh7B/blobs/bbzzAazOK4OAfW4KuwZ1/24260693452188" alt=""></div>

6. Tap **Load Ad** and then tap **Show Ad**.\
   The rendered ad appears.
   {% endtab %}
   {% endtabs %}
