Bind GPT Events

Connect GPT events with the Harmony event handler.

Params
events EventHandler Event handler instance to bind GPT events to.
[slot] googletag.Slot Ad slot to filter events for.
See
types/event-handler.js
See
var googletag = require('../modules/googletag.js');

module.exports = function (events, slot) {
    var pubads = googletag.pubads();

harmony.on('slotRenderEnded', callback)

Params
callback function(googletag.events.SlotRenderEndedEvent) Fired when the DFP ad call completes.
See
types/event-handler.js
See
    pubads.addEventListener('slotRenderEnded', function (event) {
        if (!slot || event.slot === slot) {
            events.trigger('slotRenderEnded', event);
        }
    });

harmony.on('impressionViewable', callback)

Params
callback function(googletag.events.ImpressionViewableEvent) Fired when an impression becomes viewable.
See
types/event-handler.js
See
    pubads.addEventListener('impressionViewable', function (event) {
        if (!slot || event.slot === slot) {
            events.trigger('impressionViewable', event);
        }
    });

harmony.on('slotOnload', callback)

Params
callback function(googletag.events.SlotOnloadEvent) Fired when the creative's iframe fires its load event.
See
types/event-handler.js
See
    pubads.addEventListener('slotOnload', function (event) {
        if (!slot || event.slot === slot) {
            events.trigger('slotOnload', event);
        }
    });

harmony.on('slotVisibilityChanged', callback)

Params
callback function(googletag.events.slotVisibilityChangedEvent) Fired whenever the on-screen percentage of an ad slot's area changes.
See
types/event-handler.js
See
    pubads.addEventListener('slotVisibilityChanged', function (event) {
        if (!slot || event.slot === slot) {
            events.trigger('slotVisibilityChanged', event);
        }
    });
};