Skip to content

Latest commit

 

History

History
586 lines (524 loc) · 13.9 KB

File metadata and controls

586 lines (524 loc) · 13.9 KB
layout title description biddercode tcfeu_supported dsa_supported gvl_id usp_supported coppa_supported gpp_sids schain_supported dchain_support userIds media_types safeframes_ok deals_supported floors_supported fpd_supported pbjs pbs prebid_member multiformat_supported ortb_blocking_supported privacy_sandbox sidebarType
bidder
Equativ
Prebid Equativ Bidder Adapter
equativ
true
true
45
true
true
tcfca, tcfeu, usnat, usstate_all, usp
true
false
all
banner, video, native
true
false
true
true
true
false
false
will-bid-on-any
true
false
1

Registration

The Equativ bidder adapter requires setup and approval from the Equativ service team. Please reach out to your account manager for more information to start using it.

Bid Params

Fields

{: .table .table-bordered .table-striped }

Name Scope Description Example Type
networkId required The network identifier you have been provided with. Normally required, but there are certain conditions under which this may be omitted. See Bid Parameter Usage notes below for more information. 1234 integer
siteId optional The placement site ID. See Bid Parameter Usage notes below for more information. 1234 integer
pageId optional The placement page ID. See Bid Parameter Usage notes below for more information. 1234 integer
formatId optional The placement format ID. See Bid Parameter Usage notes below for more information. 1234 integer

Usage

Different combinations of parameters are required depending upon which ones you choose to use.

There are two options for passing Equativ-specific bidder parameters: through bidder params, or through ortb2.

Through bidder params Object

Publishers can specify required and/or optional parameters through the bidder params object hierarchy like this:

var adUnits = [
  {
    /// ... mediaType and other stuff here
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42, // REQUIRED
          siteId: 142, // optional
          pageId: 242, // optional
          formatId: 342, // optional
        },
      },
    ],
  },
];
Through ortb2

A second way to specify Equativ-specific bidder parameters is through the ortb2 object. The example below references a ortb2.site.publisher.id hierarchy, but publishers can also use ortb2.app.publisher.id or ortb2.dooh.publisher.id as their needs dictate.

pbjs.setBidderConfig({
  bidders: ['equativ'],
  config: {
    ortb2: {
      site: {
        publisher: {
          id: 42,
        },
      },
    },
  },
});

Supported Media Types

{: .table .table-bordered .table-striped }

Type Support
banner Supported
video Supported
native Supported

User Syncing

To enable cookie syncing, make sure the configuration setup is properly invoked.

This involves adding an entry for setConfig() that allows user syncing for iframes with 'equativ' included as a bidder:

pbjs.setConfig({
  userSync: {
    filterSettings: {
      iframe: {
        bidders: ['equativ'],
      },
    },
  },
});

And also making sure that storage is enabled for equativ.

{% include dev-docs/storageAllowed.md %}

pbjs.bidderSettings = {
  equativ: {
    storageAllowed: true,
  },
};

Ad Unit Setup

Banner

As mentioned in the Bid Params > Usage section, when including 'equativ' as one of the available bidders in an adunit setup, there are two approaches to how publishers can specify parameters. The below example uses the approach using the params object.

var bannerAdUnits = [
  {
    code: 'div-123',
    mediaTypes: {
      banner: {
        sizes: [
          [600, 500],
          [300, 600],
        ],
      },
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42, // REQUIRED
          siteId: 142, // optional
          pageId: 242, // optional
          formatId: 342, // optional
        },
      },
    ],
  },
];

pbjs.que.push(function () {
  pbjs.addAdUnits(bannerAdUnits);
});

Video

As mentioned in the Bid Params > Usage section, when including 'equativ' as one of the available bidders in an adunit setup, there are two approaches to how publishers can specify parameters. The below example uses the approach using the params object.

Note that the optional, recommended and REQUIRED comments apply to the property itself, and not necessarily the values used in this example (i.e. skip is a recommended property to include, but it is up to publishers to decide what particular value it should have).

var videoAdUnits = [
  {
    code: 'div-123',
    mediaTypes: {
      video: {
        context: 'instream',
        mimes: ['video/mp4'], // REQUIRED
        linearity: 1, // optional
        minduration: 10, // recommended
        maxduration: 30, // recommended
        placement: 1, // REQUIRED
        skip: 1, // recommended
        startdelay: 1, // recommended
        pos: 1, // optional
        playbackmethod: 1, // optional
        battr: [10, 11], // optional
        api: [1, 2], // optional
        playerSize: [640, 480], // recommended
      },
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42, // REQUIRED
          siteId: 142, // optional
          pageId: 242, // optional
          formatId: 342, // optional
        },
      },
    ],
  },
];

pbjs.que.push(function () {
  pbjs.addAdUnits(videoAdUnits);
});

Outstream Video

Following the setup described here, this adapter supports scenarios where the publisher does not provide a custom renderer. In such cases, the configuration shown below will work, and the outstream ad will be rendered using Equativ's default player.

var adUnits = [
  {
    code: 'test-div',
    mediaTypes: {
      banner: {
        sizes: [
          [300, 250]
        ]
      },
      video: {
        context: 'outstream',
        mimes: ['video/mp4'],
        placement: 3,
        playerSize: [300, 250]
      }
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42
        }
      }
    ]
  }
];

Native

As mentioned in the Bid Params > Usage section, when including 'equativ' as one of the available bidders in an adunit setup, there are two approaches to how publishers can specify parameters. The below example uses the approach using the params object.

var nativeAdUnits = [
  {
    code: 'native-div',
    mediaTypes: {
      native: {
        adTemplate: `<div class="sponsored-post">
                  <div class="thumbnail" style="background-image: url(##hb_native_asset_id_2##);"></div>
                  <div class="content">
                      <h1>
                          <a href="%%CLICK_URL_UNESC%%##hb_native_linkurl##" target="_blank" class="pb-click" hb_native_asset_id="1">##hb_native_asset_id_1##</a>
                      </h1>
                      <p>##hb_native_asset_id_9##</p>
                      <div class="attribution">##hb_native_asset_id_6##</div>
                  </div>
                </div>`,
        ortb: {
          context: 1,
          plcmttype: 1,
          assets: [
            {
              id: 1,
              required: 1,
              title: {
                len: 80, // Title  (corresponds with id 1 from ad markup)
              },
            },
            {
              id: 2,
              required: 1,
              img: {
                type: 3, // Main Image (corresponds with id 2 from  ad markup)
                w: 300,
                h: 180,
              },
            },
            {
              id: 6,
              required: 1,
              img: {
                type: 1, // Additional image (corresponds with id 6 from  ad markup)
                w: 100,
                h: 100,
              },
            },
            {
              id: 9,
              required: 1,
              data: {
                type: 2, // Additional text (description) (dodatkowy )corresponds with id 9 from  ad markup)
              },
            },
          ],
          eventtrackers: [
            {
              event: 1,
              methods: [1],
            },
          ],
          ver: '1.2',
          privacy: 1,
        },
      },
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 73,
          formatId: 142,
          pageId: 242,
          siteId: 342,
        },
      },
    ],
  },
];

pbjs.que.push(function () {
  pbjs.addAdUnits(nativeAdUnits);
});

Audio

It is possible to specify audio inventory through the Equativ adapter. To do so, publishers can define a video-formatted ad unit and specify audio information through the ortb2Imp property, like the example shown below.

Note that the optional, recommended and REQUIRED comments apply to the property itself, and not necessarily the values used in this example (i.e. minduration is a recommended property to include, but it is up to publishers to decide what particular value it should have).

var audioAdUnits = [
  {
    code: '/19968336/header-bid-tag-1',
    mediaTypes: {
      video: {
        context: 'instream',
        playerSize: [640, 480],
      },
    },
    ortb2Imp: {
      audio: {
        mimes: ['audio/mpeg', 'audio/mp4'], // REQUIRED
        api: [7], // optional
        delivery: [2, 4], // optional
        minbitrate: 128, // optional
        maxbitrate: 192, // optional
        minduration: 10, // recommended
        maxduration: 30, // recommended
        maxextended: -1, // optional
        protocols: [1, 3, 4, 7], // recommended
        startdelay: 5, // recommended
      },
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 1234,
        },
      },
    ],
  },
];

pbjs.que.push(function () {
  pbjs.addAdUnits(audioAdUnits);
});

{: .alert.alert-warning :} Note: If a demand partner of Equativ is not capable of reading an audio object, the audio object will be converted into a video object with audio mime types. There is, as of this writing, no built-in/default support for serving audio assets in Prebid, so publishers that wish to do so will need to ensure their ad server setups can process whatever hand-offs are necessary.

Multi-formats and multi-sizes examples

Banner, Outstream Video, and Native with different floors
var adUnits = [
  {
    code: 'test-div',
    mediaTypes: {
      banner: {
        sizes: [
          [300, 250],
          [300, 600]
        ]
      },
      video: {
        context: 'outstream',
        mimes: ['video/mp4'],
        placement: 3,
        playerSize: [300, 250]
      },
      native: {
        title: {
          len: 80,
          required: true
        },
        image: {
          required: true,
          sizes: [300, 150]
        }
      }
    },
    floors: {
      currency: 'USD',
      schema: {
        fields: ['mediaType']
      },
      values: {
        'banner': 1.04,
        'video': 1.87,
        'native': 1.35
      }
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42
        }
      }
    ]
  }
];
Banner, Outstream Video, and Native with one floor
var adUnits = [
  {
    code: 'test-div',
    mediaTypes: {
      banner: {
        sizes: [
          [300, 250],
          [300, 600]
        ]
      },
      video: {
        context: 'outstream',
        mimes: ['video/mp4'],
        placement: 3,
        playerSize: [300, 250]
      },
      native: {
        title: {
          len: 80,
          required: true
        },
        image: {
          required: true,
          sizes: [300, 150]
        }
      }
    },
    floors: {
      currency: 'USD',
      schema: {
        fields: ['mediaType']
      },
      values: {
        '*': 1.48
      }
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42
        }
      }
    ]
  }
];
Multiple Banner sizes with different floors
var adUnits = [
  {
    code: 'test-div',
    mediaTypes: {
      banner: {
        sizes: [
          [300, 160],
          [300, 250],
          [300, 600]
        ]
      }
    },
    floors: {
      currency: 'USD',
      schema: {
        delimiter: '|',
        fields: ['mediaType', 'size']
      },
      values: {
        'banner|300x250': 1.37,
        'banner|300x600': 1.52,
        'banner|*': 1.23
      }
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42
        }
      }
    ]
  }
];
Multiple Banner sizes with one floor
var adUnits = [
  {
    code: 'test-div',
    mediaTypes: {
      banner: {
        sizes: [
          [300, 160],
          [300, 250],
          [300, 600]
        ]
      }
    },
    floors: {
      currency: 'USD',
      schema: {
        delimiter: '|',
        fields: ['mediaType', 'size']
      },
      values: {
        'banner|*': 1.19
      }
    },
    bids: [
      {
        bidder: 'equativ',
        params: {
          networkId: 42
        }
      }
    ]
  }
];

First Party Data

Publishers should use the ortb2 method of setting First Party Data.

Keywords

Keyword targeting capabilities are supported. To pass keywords, the following fields can be used: ortb2.site.keywords, ortb2.app.keywords, or ortb2.dooh.keywords.

pbjs.setConfig({
  ortb2: {
    site: {
      keywords: 'kw_1,kw_2'
    }
  }
});

Additional Resources

Information about how Equativ supports the oRTB specification, along with additional examples, can be found on our OpenRTB API support site.