Introduction
Adding Verve ad tags to your mobile application is quick and easy.
We support three kinds of integration:
- We offer an SDK for integration into your mobile apps
- We offer server-side integration via an API
- We offer javascript ad tags for integrating into mobile sites and apps
SDK Integration
For more information on the Verve Ad SDK, contact your publisher services representative or see our documentation here: Verve Ad SDK for Publishers.
Server-Side Integration
Our AdCel API provides a server-side method of integrating with publishers.
Talk to your publisher services representative for provisioning of your production service on our API.
Javascript Integration
The javascript Integration is the simplest form of integration that Verve supports.
The Verve tag is a simple call to a hosted javascript file. It looks like this:
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'ptnr'; vrv.c = '999'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
For normal client-side integration, simply insert your Verve Ad Tag where you want your ad to appear.
Required parameters
There are three parameters that are required in every tag.
Parameter | Name | Description |
---|---|---|
p | Portal keyword | Portal keyword. This is a Verve-assigned value identifying the distribution portal on which the advertisement is being displayed. In most cases, a mobile website accessed directly using the publisher's hostname is on the default portal (keyword: "def"). The portal will change if the site is accessed through a mobile carrier's "deck". Mobile client applications are typically segregated by platform (e.g., iPhone, BlackBerry, Windows Mobile, etc.) using portals. |
b | Partner (publisher) keyword. | This is a Verve-assigned value identifying the publisher of the mobile content. Note that there's a one-to-one relationship between a mobile site and a publisher. For example, for the Daily Planet's mobile site, the partner keyword might be "dailyplanet". |
c | Content Category | Content category ID. This is an integer which identifies the type of content available on the page for which an ad is requested. For example, a page of sports news will have one category ID, while a page of movie reviews will have another. |
If you set the "category" variable to a value in our Ad Category Codes this provides us with metadata about the content type for the impression that allows us to serve higher value ad inventory. A list of acceptable category values can be found in the AdCel API.
Optional Parameters
If your application/platform captures accurate location or advertiser ids, passing this data on the request can greatly increase the monetization of your inventory. Simply insert the parameters you wish to pass in the request in your ad tag as show below. Your account manager will create a custom tag for your specific integration. For a list of additional available parameters, read more here: AdCel API.
Here are the most valued parameters:
- Lat and long parameters should be sent as decimal values. For example, lat: 40.759110, long: -73.985163 resolves to Time Square New York city.
- ui advertiser id includes idfa, google id, or android id.
- uis advertiser id source specifies the id type you are passing. Refer to this section to understand the uis mapping: User Identifier Guidance. If you cannot properly set a uis value, please talk with your account manager for alternate ways to pass this data.
- hwmdl is the hardware model of the user's device. This information is only exposed to applications. For example a hardware model of 'A1432' refers to the iPad mini, first generation.
In the examples below, the placeholders (text between the angle brackets, and the brackets themselves) should be replaced with actual values. If the tag includes these placeholders, the request may pass inaccurate/insufficient data
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'ptnr'; vrv.c = '999'; vrv.lat = '<INSERT_LATITUDE_HERE>'; vrv.long = '<INSERT_LONGITUDE_HERE>'; vrv.ui = '<INSERT_ADVERTISER_IDENTIFIER>'; vrv.uis = '<INSERT_ADVERTISER_IDENTIFIER_SOURCE>'; vrv.hwmdl = '<INSERT_HARDWARE_MODEL>'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
Testing and Certification
Testing and certification involves a combination of validating on mobile web and app as well as various flavors of interstitials and video formats.
MMA
To create a tag that returns a banner every time, the following values should be used:
- b=sampletag
- p=ptnr
- c=999
By changing the category ("c") to "888", you will get a Celtra rich media banner rather than a static image. Using this, you can test a wide range of possible Verve responses.
Expandable
Please validate that your supports our expandable format for both mobile web and app below:
Mobile Web
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'ptnr'; vrv.c = '97'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
APP-for both iPhone and Android apps
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'iphn'; vrv.c = '97'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
The expandable looks like this:
In banner/line video for iOS apps
iOS supports playing inline video via the "allowsInlineMediaPlayback" to be set in app. Please certify if your iOS (iPhone and iPad) apps can run this creative type.
- Requires allowsInlineMediaPlayback to be set in app
- Use this test tag to be loaded in app:
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'iphn'; vrv.c = '22'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
Screen shots of video playing in an expanded panel:
Specifications:
- In line banner/interstitial
- Auto play: Yes
- Duration: 5-10 seconds
- Audio: No
- Expanded panel (requires user to tap on initial banner to open)
- Auto play: Yes
- Duration: 15 to 30 recommended.
- Audio: Yes
- Example preview without using an app: http://www.vervemobile.com/test/inbannervideo/
- If your browser doesn't support the mime type try another browser or install the appropriate plugin for your browser.
- If viewing on a mobile device, this will not auto play.
Interstitial
Full Screen Interstitial
This is a test full screen static interstitial tag for mobile web. The black border will soak up all remaining space on the page. If you don't want a full screen interstitial, please take a look at the dedicated 300x250 interstitial. As a publisher, you will need to control how many interstitials you will request.
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'ptnr'; vrv.c = '999'; vrv.adunit = 'inter'; vrv.size = '320x416'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
The interstitial will look like this:The tag returns a javascript response similar to this: JS_Response.txt
300x250 Interstitial
Use this test tag when your inventory is running a specific 300x250 ad size.
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'iphn'; vrv.c = '999'; vrv.adunit = 'inter'; vrv.size = '300x250'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
This will request will return a js response as well: JS_Response_300x250.txt
A 300x250 image will display without an expanding border that covers the full screen of the device:
Tablet
Tablet banners require an adunit of banner and a size of either 728x90 or 300x250.
<script> vrv = document.vrv || {}; vrv.b = 'sampletag'; vrv.p = 'ipad'; vrv.c = '999'; vrv.adunit = 'banner'; vrv.size = '728x90'; </script> <script src="https://c.vrvm.com/pass/vrv/adtag/vervetag.js"></script>
Ad Formats and Size
MMA
The Verve Ad Tag will automatically sense the device requesting a page and serve an appropriately sized advertisement. Generally, Verve Ad Tags comply closely with MMA specifications and come in the following sizes:
- 320x50
- 300x50
- 216x36
The supported formats are .jpg, .gif, and .png.
Caching
No caching of ads is allowed under any circumstances.
Interstitial Inventory
If you wish to display interstitial ads or have interstitial units today and would like Verve to show interstitial ads into it, please speak with your publisher services representative.
Video Tag Integration
The video tag Integration is the simplest form of integration that Verve supports for video. The Verve video tag is a simple call to a Verve VAST endpoint, which will return a VAST-complaint video ad response.
https://adcel.vrvm.com/vast?p=ptnr&b=vastvrvtest&c=999&adunit=vastlinear&lat=40.753800&long=-73.983354
Required Video Parameters
These are the required paramenters to be included in the ad tag request.
Parameter | Name | Description |
---|---|---|
p | Portal keyword | This is a Verve-assigned value identifying the distribution portal on which the advertisement is being displayed. In most cases, a mobile website accessed directly using the publisher's hostname is on the default portal (keyword: "def"). The portal will change if the site is accessed through a mobile carrier's "deck". Mobile client applications are typically segregated by platform (e.g., iPhone, BlackBerry, Windows Mobile, etc.) using portals. |
b | Partner (publisher) keyword. | This is a Verve-assigned value identifying the publisher of the mobile content. Note that there's a one-to-one relationship between a mobile site and a publisher. For example, for the Daily Planet's mobile site, the partner keyword might be "dailyplanet". |
c | Content Category | This is an integer which identifies the type of content available on the page for which an ad is requested. For example, a page of sports news will have one category ID, while a page of movie reviews will have another. See Appendix A for a complete list of categories and codes. |
ui | User Identifier | Device ID. If a ui value is passed, the uis parameter should also be set. ui value is case sensitive. Unhashed IDFA (Apple ID) should be upper case. All other ui values, including hashed IDFA's, should be lower case. |
uis | User Identifier Source | Code indicating the source or type of ID passed in the "ui" parameter. (Ignored when the "ui" parameter is not present.) By default, and in the absence of this parameter, the user identifier is assumed to be a randomly-generated ID. iOS id's must be passed as uppercase and Android id's in lower case. Refer to this section to understand the uis mapping: User Identifier Guidance. If you cannot properly set a uis value, please talk with your account manager for alternate ways to pass this data. |
appid | App Bundle Id | Unique key that identifies the app (e.g. iOS Bundle ID or Android App ID or Package name). This is usually in the following format: com.example.myapp |
appver | App Version | This is the current version number of your app |
Optional Video Parameters
If your application/platform captures accurate location or advertiser ids, passing this data on the request can greatly increase the monetization of your inventory. Simply insert the parameters you wish to pass in the request in your ad tag as show below. Your account manager will create a custom tag for your specific integration.
Parameter | Name | Description |
---|---|---|
adunit | Ad Unit | Valid values; vastlinear (only supported on the /vast endpoint), vastnonlinear (only supported on the /vast endpoint). |
ll | Lat/Long | Latitude and longitude of the user, encoded. The location of the user at the time of the advertising request. Availability of this parameter is, of course, platform- dependent and optional. It must be excluded if the user does not consent to provide location information in some manner. However, if location is available, it should be included. The parameter name is two lower-case Ls, and is encoded in a special format (described later in this document). The location's resolution does not have to be particularly precise, however a minimum target of 3km is recommended. Also, for a particular user session, it's sufficient to obtain the location only once. I.e., location does not need to be looked-up for every ad request during a session. Please pass the most accurate location known, which is generally GPS data pulled from the device. |
lat | Latitude | Latitude location of the user making the ad request. Note the "ll" parameter is the preferred method in which to supply geolocation information. Please pass the most accurate location known, which is generally GPS data pulled from the device. |
long | Longitude | Longitude location of the user making the ad request. Please pass the most accurate location known, which is generally GPS data pulled from the device. |
hwmdl | Hardware Model | Manufacturer's designation for the device hardware model. At present, this should only be populated for iOS using the "hw.model" sysctl. For example, the GSM iPhone 4 would use the value "N90AP". Refer to the internal name designed in this list: https://theiphonewiki.com/wiki/Models On iOS, this parameter is preferred to the "model" parameter, but should be omitted if the information is unavailable. |
cc | Container Capability | Indicates the container capabilities for the vidoe ad request. VAST and/or VPAID support, including supported version, should be communicated: e.g. cc=vast2.0&cc=vpaid1.0 |
videoPlacement | Video Placement | Allowed values: stream, banner, article, feed, floating
|
duration | Duration | Specifies the duration in seconds of the ad you want returned. Valid values: 15 Second Video: "15” or 30 Second Video: “30”, etc. |
Additional Video Parameters
In addition to the relavant parameters above (location/device/supply/etc), the following parameters may be used to further filter the potential demand to be requested.
Note: previously, the size parameter was used to define the duration. It has now been separated into a new field, 'duration'. Duration passed in the size parameter will still be honored, but this is less favorable than using the duration parameter.
Many of the parameters defined here have been derived from the OpenRTB specification.
Parameter | Name | Type | Examples | Required? | Default Value | Description |
---|---|---|---|---|---|---|
minDuration | Minimum Duration | integer (seconds) | 15 | no | any | The minimum length (in seconds) of the advertisement requested. |
maxDuration | Maximum Duration | integer (seconds) | 60 | no | any | The maximum length (in seconds) of the advertisement requested. |
videoMime | Video Mime Type | string | video/mp4 | no | any | The mime type allowed for video delivery (e.g.: video/mp4, video/x-flv) |
deliveryType | Delivery Type | String | progressive | no | progressive | Supported delivery methods. Allowed values: progressive, streaming, download |
skip | Allow Skip | boolean (true|false) | true | no | any | Indicates if the player will allow the video to be skipped. |
skipMin | Skip Minimum Seconds | integer (seconds) | 10 | no | 0 | Videos of total duration greater than this number of seconds can be skippable; only applicable if the ad is skippable |
skipAfter | Skip After Seconds | integer (seconds) | 10 | no | 0 | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. |
startDelay | Start Delay Seconds | integer (seconds) | 10 | no | 0 | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. 0 is pre-roll >0 is Mid-Roll (value indicates start delay in second) |
boxingAllowed | Letterboxing Allowed | boolean (true|false) | false | no | true | Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed |
autoPlay | Auto Play | boolean (true|false) | true | no | any | Indicates if the video is allowed to auto play |
audioOnStart | Audio On Start | boolean (true|false) | true | no | any | Indicates if the video's audio is allowed to be on when starting |
Passbacks
By default, if there was no ad available for the request, a zero-byte HTTP 200 response will be returned. Here is a sample of the headers:
Server: Apache-Coyote/1.1 Content-Type: text/plain Transfer-Encoding: chunked Date: Wed, 24 Sep 2008 20:44:40 GMT 200 OK
If you have a roll-over tag that you would prefer us to use, give that tag to your Verve publisher services representative and Verve will integrate that on your behalf. Verve works with many third party advertising networks - please make sure you let your Verve publisher services representative know whether you would like the benefit of these advertising partners looking at inventory before we pass the ad back to you. Adding Verve ad tags to your mobile application is quick and easy.