# Creative specifications

> Review the requirements for ad creatives with Unity User Acquisition.

Creatives are the individual assets or your ad. Review the following sections for specifications and requirements for each creative type:

* [Video](#video)
* [Playable](#playable)
* [End card](#end-card)

## Video

Video ads use in-game video through an embedded webview to market an app. While an ad only requires one video, uploading a video for each type of screen orientation (landscape and portrait) yields better optimization. When a creative contains both, Unity's valuation algorithm selects the best orientation to display. Note that with Unity, all video ads must also include an end card.

### Video creative specifications

Video creatives must adhere to the following specifications:

* 60 s or less
* H.264-encoded MP4 format
* 16:9 pixel ratio for landscape videos, or 9:16 pixel ratio for portrait videos
* Recommended file size is 10 MB. Maximum file size is 100 MB. Videos are re-encoded to be work with various bitrates. The final video shown will be optimized for the user's available network speed and cache settings.
* **Apple only**: Due to Apple requirements, only depict the Apple app store logo. Refer to [Apple's marketing guidelines](https://developer.apple.com/app-store/marketing/guidelines/#badges) for more information.

> **Note:**
>
> The current version of long video ads (30 to 60 s) is a beta release. The features and documentation might change between now and the next release.

### Video creative templates

Refer to the following examples of the correct video asset pixel ratios.

1. **Portrait videos**


   **Example portrait video with a 9:16 pixel ratio:**
   ![Example portrait video with a 9:16 pixel ratio](/api/media?file=/user-acquisition/media/images/portrait-video-creative.png)

2. **Landscape videos**


   **Example landscape video with a 16:9 pixel ratio:**
   ![Example landscape video with a 16:9 pixel ratio](/api/media?file=/user-acquisition/media/images/landscape-video-creative.png)

## Playable

Playable ads allow users to play an interactive demo of your game.

### Playable specifications

Playable creatives must meet the following specifications:

* Contained in a single HTML index file (`index.html`), with no links to other files or folders.
* An inlined, minified file (optimized for machine-reading by removing empty spaces).
* Under 5 MB.
* Compliant with the Mobile Rich Media Ad Interface Definitions (MRAID) 3.0 specifications.

  > **Note:**
  >
  > MRAID is the common API for mobile rich media ads running in mobile apps. The Unity Ads webview provides MRAID, so you can use MRAID methods detailed in the guidelines. To learn more, review the [IAB's documentation](https://www.iab.com/guidelines/mobile-rich-media-ad-interface-definitions-mraid/) for detailed information on MRAID 3.0 methods, best practices, and standards.

In addition, Unity requires the following for playables:

* Advertisements must be contained in a single HTML file, with all assets inlined.
* Android games must use Android version 4.4 or higher.
* iOS games must use iOS version 9.0 or higher.
* Ads must not block the close button or any other container UI elements in a way that prevents users from closing the ad.
* Ads must support both portrait and landscape orientations.
* Ads must not need any network requests (XHR), but analytic calls to collect player interaction data are permitted if they don't contain personal data (such as user or device identifiers) and otherwise comply with all applicable laws and platform policies.
* Ads must not automatically (for instance, without explicit user action or a call-to-action) redirect to the app store.
* Ad call-to-actions msut link directly to the app store using mraid.open.
* Ads must wait for the MRAID `viewableChange` event before starting playable content.

### MRAID examples

To redirect a user on click, use the `mraid.open` method with the URL string for your game's app store page. Refer to the following platform-specific examples of `mraid.open`:

1. **iOS**

   ```javascript
   case "iOS":mraid.open("https://itunes.apple.com/us/yourgame?mt=8");
   ```

2. **Android**

   ```javascript
   case "Android":mraid.open("https://play.google.com/store/apps/details?id=yourgame"); break;
   ```

### Initialization example

Consider the following example of how to initialize the playable ad:

```javascript
// Wait for the SDK to become ready: 
function Start() {
    if (mraid.getState()==='loading') {
        // If the SDK is still loading, add a listener for the 'ready' event:
        mraid.addEventListener('ready', onSdkReady);
        // Otherwise, if the SDK is ready, execute your function:
    } else {
        onSdkReady(); 
    }
}

// Implement a function that shows the ad when it first renders:
function onSdkReady() {
    // The viewableChange event fires if the ad container's viewability status changes.
    // Add a listener for the viewabilityChange event, to handle pausing and resuming: 
    mraid.addEventListener('viewableChange',viewableChangeHandler);
	// The isViewable method returns whether the ad container is viewable on the screen.
    if (mraid.isViewable()) {
        // If the ad container is visible, play the ad:
        showMyAd(); 
    }
}

// Implement a function for executing the ad:
function showMyAd() {
    // Insert code for showing your playable ad. 
}

// Implement a function that handles pausing and resuming the ad based on visibility:
function viewableChangeHandler(viewable) {
    if(viewable) {
        // If the ad is viewable, show the ad:
        showMyAd(); 
    } else {
        // If not, pause the ad.
    }
}
```

> **Note:**
>
> * The Unity Ads SDK controls the ability to skip through an ad.
> * Don't use automatic redirection to the app store. The ad must not open the app store automatically, or with the very first touch by the user.
> * Start, view, and click attribution occurs server-side.
> * For more detailed information about playables, refer to the [Playable Ads on Unity](https://bit.ly/3xHiiuz) documentation.

## End card

The default end card is a non-playable image.

### Image end card specifications

Refer to the following specifications for your end card image files.

1. **File type and size**

   Use this table to verify that your image file is the correct size and format.

   | Specification | Details          |
   | ------------- | ---------------- |
   | File format   | JPG, PNG, or GIF |
   | File size     | 5 MB             |

2. **Image dimensions**

   Use this table to verify that your image file uses the correct dimensions.

   | End card type       | Pixel resolution |
   | ------------------- | ---------------- |
   | Landscape end cards | 800 × 600 (4:3)  |
   | Portrait end cards  | 600 × 800 (3:4)  |
   | Square end cards    | 800 × 800 (1:1)  |

   > **Note:**
   >
   > Dynamic cropping might occur when using landscape and portrait images to account for different device sizes. To avoid losing critical information, allow a 100-pixel buffer from the top and bottom edges of portrait images, and left and right edges for landscape images.

### Image end card template

Refer to the following example of a static end card using the correct image dimensions:


**Image end card example:**
![Image end card example](/api/media?file=/user-acquisition/media/images/image-end-card.png)

### Playable end card specifications

Interactive playable end cards add a layer of engagement at the end of a regular 15 to 60 s video ad.

> **Note:**
>
> The current version of long video ads (30 to 60 s) is a beta release. The features and documentation might change between now and the next release.

* A single, inline, and responsive HTML file up to 5 MB.
* Respect `isViewable` state.
* Playable can start along with video.
* A call-to-action (CTA) button, leading to the Play store or App store.
* Adherence to MRAID [3.0 specifications](https://www.iab.com/guidelines/mobile-rich-media-ad-interface-definitions-mraid/).
* Minified file (optimized for machine-reading by removing empty spaces).
* End cards for both portrait and landscape screen orientation.

> **Important:**
>
> Due to the sensitive nature of gambling ads across many of our publishers, Unity requires gambling advertisers to be managed accounts. Gambling creatives from unmanaged partners will be rejected in moderation. To become a managed partner or learn more about Unity's gambling ad policies, [contact us](https://unity.com/support-services). For more information, refer to [Unity's legal site](https://unity.com/legal).

## Apple specifications

The Apple App Store has unique rules for creatives. To adhere to Apple requirements, only depict the Apple app store logo. Refer to [Apple's marketing guidelines](https://developer.apple.com/app-store/marketing/guidelines/#badges) for more information.
