For the complete documentation index, see llms.txt. This page is also available as Markdown.

relevantDigital.addAdsCallbacks()

Register ad-server-independent slot events, including for directly rendered bids.

Use relevantDigital.addAdsCallbacks() to register ad-server-independent slot event listeners. These events also fire when Relevant Yield renders a winning bid directly.

When to use it

Use this API when direct rendering is enabled. Ad-server event listeners alone cannot reliably show whether an ad was rendered.

For example, a Google Ad Manager slotRenderEnded event can report isEmpty: true when the ad server returns no ad. A winning Prebid bid may still render directly. Use these callbacks for logic such as hiding an ad container.

For direct-rendering guidance, see Implementation and testing guidelines for direct rendering.

Event order

Each slot triggers these events once, in order:

  1. slotRequested

  2. slotResponseReceived

  3. slotRenderEnded

The events have the same meaning as the Google Ad Manager JavaScript API. Their names stay consistent across supported ad servers.

Example

window.relevantDigital = window.relevantDigital || {};
relevantDigital.cmd = relevantDigital.cmd || [];
relevantDigital.cmd.push(function() {
    const printEvent = (type, ev, adUnitInstance) => {
        console.info(`********** ${type} **********`);
        console.info('Event: ', ev);
        console.info('AdUnitInstance (if any): ', adUnitInstance);
        console.info('Is direct rendering: ', ev.directRender);
        console.info('Direct rendered bid: ', ev.bid);
        console.info('Ad slot: ', ev.slot);
        console.info('Is empty: ', ev.isEmpty);
    };
    relevantDigital.addAdsCallbacks({
        slotRequested: (...args) => {
            printEvent('slotRequested', ...args);
        },
        slotResponseReceived: (...args) => {
            printEvent('slotResponseReceived', ...args);
        },
        slotRenderEnded: (ev, data) => {
            printEvent('slotRenderEnded', ev, data);
        },
    });
});

Event data

adUnitInstance

Contains Relevant Yield placement data. It is null for slots loaded outside relevantDigital.loadPrebid(), or for slots loaded with loadUnknownSlots: true.

Direct rendering fields

For directly rendered bids, ev.directRender and ev.bid may be available.

Ad-server-specific event data

Google Ad Manager

When an ad request is made and no bid renders directly, all three events use the Google Ad Manager event objects. Otherwise, the event object can differ.

Microsoft Advertising (Xandr)

When the ad server triggers the event, ev.ad contains the Xandr ad object.

Last updated

Was this helpful?