|
| 1 | +--- |
| 2 | +layout: bidder |
| 3 | +title: Alva |
| 4 | +description: Prebid Alva Bidder Adapter |
| 5 | +pbjs: true |
| 6 | +pbs_app_supported: false |
| 7 | +biddercode: alvads |
| 8 | +media_types: banner, video |
| 9 | +gdpr_supported: true |
| 10 | +usp_supported: true |
| 11 | +coppa_supported: false |
| 12 | +--- |
| 13 | + |
| 14 | +# Overview |
| 15 | + |
| 16 | +**Module Name:** alvadsBidAdapter |
| 17 | +**Module Type:** Bidder |
| 18 | +**Maintainer:** [alvads@oyealva.com](mailto:alvads@oyealva.com) |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +# Description |
| 23 | + |
| 24 | +The **Alva Bid Adapter** allows publishers to connect their banner and video inventory with the Alva demand platform. |
| 25 | + |
| 26 | +- **Bidder Code:** `alvads` |
| 27 | +- **Supported Media Types:** `banner`, `video` |
| 28 | +- **Protocols:** OpenRTB 2.5 via `POST` (banner and video) |
| 29 | +- **Dynamic Endpoints:** The adapter uses a default endpoint, but can be overridden via `params.endpoint`. |
| 30 | +- **Price Floors:** Supported via `bid.getFloor()`. If configured, the adapter will send `bidfloor` and `bidfloorcur` per impression. |
| 31 | + |
| 32 | +--- |
| 33 | +# Parameters |
| 34 | + |
| 35 | +| Parameter | Required | Description | |
| 36 | +|------------ |---------------- |------------ | |
| 37 | +| publisherId | Yes | Publisher ID assigned by Alva | |
| 38 | +| tagid | Banner only | Required for banner impressions | |
| 39 | +| bidfloor | No | Optional; adapter supports floors module via `bid.getFloor()` | |
| 40 | +| userId | No | Optional; used for user identification | |
| 41 | +| endpoint | No | Optional; overrides default endpoint | |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +# Test Parameters |
| 46 | + |
| 47 | +### Banner Example |
| 48 | + |
| 49 | +```javascript |
| 50 | +var adUnits = [{ |
| 51 | + code: 'div-banner', |
| 52 | + mediaTypes: { |
| 53 | + banner: { |
| 54 | + sizes: [[300, 250], [320, 100]] |
| 55 | + } |
| 56 | + }, |
| 57 | + bids: [{ |
| 58 | + bidder: 'alvads', |
| 59 | + params: { |
| 60 | + publisherId: 'pub-123', // required |
| 61 | + tagid: 'tag-456', // required for banner |
| 62 | + bidfloor: 0.50, // optional |
| 63 | + userId: '+59165352182', // optional |
| 64 | + endpoint: 'https://custom-endpoint.com/openrtb' // optional, overrides default |
| 65 | + } |
| 66 | + }] |
| 67 | +}]; |
| 68 | +``` |
| 69 | + |
| 70 | +### Video Example |
| 71 | + |
| 72 | +```javascript |
| 73 | +var adUnits = [{ |
| 74 | + code: 'video-ad', |
| 75 | + mediaTypes: { |
| 76 | + video: { |
| 77 | + context: 'instream', |
| 78 | + playerSize: [[640, 360]] |
| 79 | + } |
| 80 | + }, |
| 81 | + bids: [{ |
| 82 | + bidder: 'alvads', |
| 83 | + params: { |
| 84 | + publisherId: 'pub-123', // required |
| 85 | + bidfloor: 0.5, // optional |
| 86 | + userId: '+59165352182', // optional |
| 87 | + endpoint: 'https://custom-endpoint.com/video' // optional, overrides default |
| 88 | + } |
| 89 | + }] |
| 90 | +}]; |
| 91 | +``` |
| 92 | + |
| 93 | +--- |
| 94 | + |
| 95 | +# Request Information |
| 96 | + |
| 97 | +### Banner / Video |
| 98 | +- **Default Endpoint:** |
| 99 | + ``` |
| 100 | + https://helios-ads-qa-core.ssidevops.com/decision/openrtb |
| 101 | + ``` |
| 102 | +- **Method:** `POST` |
| 103 | +- **Payload:** OpenRTB 2.5 request containing `site`, `device`, `user`, `regs`, and `imp`. |
| 104 | +- **Dynamic Endpoint:** Can be overridden via `bid.params.endpoint`. |
| 105 | + |
| 106 | +--- |
| 107 | + |
| 108 | +# Response Information |
| 109 | + |
| 110 | +### Banner |
| 111 | +The response is standard OpenRTB with `seatbid`. |
| 112 | + |
| 113 | +```json |
| 114 | +{ |
| 115 | + "id": "response-id", |
| 116 | + "seatbid": [{ |
| 117 | + "bid": [{ |
| 118 | + "impid": "imp-123", |
| 119 | + "price": 0.50, |
| 120 | + "adm": "<div>Creative</div>", |
| 121 | + "crid": "creative-1", |
| 122 | + "w": 320, |
| 123 | + "h": 100, |
| 124 | + "ext": { |
| 125 | + "vast_url": "http://example.com/vast.xml" |
| 126 | + }, |
| 127 | + "adomain": ["example.com"] |
| 128 | + }] |
| 129 | + }], |
| 130 | + "cur": "USD" |
| 131 | +} |
| 132 | +``` |
| 133 | + |
| 134 | +### Interpretation |
| 135 | +- If `adm` contains `<VAST>`, the adapter sets `mediaType: 'video'` and includes `vastXml` & `vastUrl`. |
| 136 | +- Otherwise, `mediaType: 'banner'` and the ad contains the HTML markup. |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | +# Additional Details |
| 141 | + |
| 142 | +- **Defaults:** |
| 143 | + - `netRevenue = true` |
| 144 | + - `ttl = 300` |
| 145 | + - Banner fallback size: `320x100` |
| 146 | + - Video fallback size: `1280x720` |
| 147 | + |
| 148 | +- **Callbacks:** |
| 149 | + - `onTimeout` → logs timeout events |
| 150 | + - `onBidWon` → logs winning bids |
| 151 | + |
| 152 | +--- |
0 commit comments