---
layout: page_v2
title: Geoedge Realtime Module
display_name: Geoedge Realtime
description: Geoedge realtime blocking of bad ads - malware, redirect and offensive content
page_type: module
module_type: rtd
module_code : geoedgeRtdProvider
enable_download : true
vendor_specific: true
sidebarType : 1
---

# Geoedge Realtime Module
{:.no_toc}

* TOC
{:toc}

## Overview

The Geoedge Realtime module lets publishers block bad ads such as automatic redirects, malware, offensive creatives and landing pages.
To use this module, you'll need to work with [Geoedge](https://www.geoedge.com/publishers-real-time-protection/) to get an account and customer key.

{% include dev-docs/loads-external-javascript.md %}

## Integration

1. Build the geoedge RTD module into the Prebid.js package with:

    ```bash
    gulp build --modules=geoedgeRtdProvider,...
    ```

2. Use `setConfig` to instruct Prebid.js to initilize the geoedge module, as specified below.

## Configuration

This module is configured as part of the `realTimeData.dataProviders` object:

```javascript
pbjs.setConfig({
    realTimeData: {
        dataProviders: [{
            name: 'geoedge',
            params: {
                key: '123123',       // obtain your key from Geoedge support
                bidders: {
                    'bidderA': true, // monitor bids form this bidder
                    'bidderB': false // do not monitor bids form this bidder.
                },
                wap: true
            }
        }]
    }
});
```

Parameters details:

{: .table .table-bordered .table-striped }
| Name | Type | Description | Notes |
| :------------ | :------------ | :------------ | :------------ |
| name | String | Real time data module name | Required, always 'geoedge' |
| params | Object | | |
| params.key | String | Customer key | Required, contact Geoedge to get your key |
| params.bidders | Object | Bidders to monitor | Optional, list of bidder to include / exclude from monitoring. Omitting this will monitor bids from all bidders. |
| params.wap | Boolean | Wrap after client load | Optional, defaults to `false`. Set to `true` if you want to monitor only after the module has loaded the monitoring client. |
| params.outstream | Boolean | Monitor outstream video | Optional, defaults to `false`. Set to `true` to extend monitoring to outstream video bids. See [Outstream video](#outstream-video) below. |
| params.display | Boolean | Monitor display | Optional, defaults to `true`. Set to `false` to opt out of display monitoring, leaving display bids unwrapped. |

## Outstream video

Video creatives are VAST rather than HTML, so they cannot be wrapped the way display creatives are.
With `outstream: true` the module instead wraps the bid's own `renderer.render` and asks the
monitoring client whether the creative may run:

```javascript
pbjs.setConfig({
    realTimeData: {
        dataProviders: [{
            name: 'geoedge',
            params: {
                key: '123123',
                outstream: true
            }
        }]
    }
});
```

Behavior worth knowing before enabling it:

* **Render timing.** The monitoring client is loaded when the module initializes, so by the time a
  bid renders it has normally already answered and rendering proceeds immediately. Only a render that
  happens before the client is ready waits for the answer, and that wait is capped by a short
  deadline.
* **It fails open.** If the client does not load within that deadline, or loads without a verdict for
  the bid, the creative renders unmonitored. An ad is never lost because monitoring was unavailable.
* **It only affects bids Prebid renders through the bid's renderer.** Bids carrying a `safeRenderer`,
  and bids whose VAST reaches a player straight from targeting or Prebid Cache, are left untouched.
* **Display monitoring is unchanged.** A bid handled by the outstream path is not also HTML-wrapped.

## Example

To view an integration example:

1. in your cli run:

    ```bash
    gulp serve --modules=msftBidAdapter,geoedgeRtdProvider
    ```

2. in your browser, navigate to:

```text
http://localhost:9999/integrationExamples/gpt/geoedgeRtdProvider_example.html
```
