Singular/Trial Use:

Configure a button for individual pieces of inventory, and then embed those buttons onto that vehicle’s VDP page.

Programmatic use at Scale (Advanced):

After establishing the placement and fit of the widget using the ‘Singular/Trial Use’ method, the developer can then program the widget into all of the VDP pages and override the VIN using Javascript.


To embed Edmunds Price PromiseSM Widget on your page just follow the instructions from Get Code popup.

Example scenario:

  1. Insert the empty div to your page:

    <div id="ppb-<car's vin>"></div>
  2. Add the following JavaScript snippet to your page. It preferably to add at the bottom of your page for best page performance:

    <script type="text/javascript" src=""></script>
    <script type="text/javascript">
    var widget = EDM.createWidget({
        "type": "ppb",
        "renderTo": "ppb-<car's vin>",
        "style": {
            "width": "250",
            "height": "630"
        "scripts": [
            "/libs/requirejs/require.js\" data-main=\""
        "options": {
            "apiKey": <api key>
            "vin": <car's vin>,
            "zipCode": "90404"

Edmunds Price PromiseSM Widget provides the next method for subscription to the widget events:

on() - Binds a callback function to an object. The callback will be invoked whenever the event is fired.


    // create instance of the widget
    var widget = EDM.createWidget(/* configured options here */);

    // subscribe to the event
    widget.on('', function() {
        _trackEvent('Ppb', 'Click', 'Button clicked');
        console.log('button was clicked');

Event Callback Params Description none This event is fired when price promise button was clicked.