Browse the help center

Let a third-party tag pass the impression back

Enable passback functionality on a Code or Template banner, copy the generated Banner passback code snippet for the partner's no-fill branch — or the $$PASSBACK_INFO$$ macro for tag and redirect flows — so Epom drops that banner and re-selects — step by step, with the re-selection cap and a fix-it checklist.

How-to network manager Account → Advertisers → advertiser → campaign → banner → Enable passback functionality

What it is and why

A banner passback works the other way round from a default code: it lets a third-party tag that Epom served hand the impression back, so Epom drops that banner for the request and serves the next one. Use it when Epom serves a Code or Template banner that hands the slot to another ad source, and you want the impression back if that source declines it. This page is one of the three stages of Set up daisy chaining and passbacks.

Example. A news site’s article MPU chain tries two direct campaigns, then a partner’s HTML tag, then two house ads. When the partner has no fill, their tag runs the Banner passback code snippet on its no-fill branch; Epom excludes the partner banner for that request, writes a passback record and re-selects — a house ad serves instead of a blank slot.

Typical scenarios

You wantSetWhere
A partner’s HTML tag that gives the impression back when they have no fillEnable passback functionality on that banner; the generated snippet on the partner’s no-fill branchthe banner’s Basic information
The same for a partner whose fallback is a redirect URL, not a script$$PASSBACK_INFO$$ (or $$PASSBACK_INFO_ESC$$) in the fallback URLthe banner’s markup
A page served from the second of two AJAX invocation-code domainsPick that domain in the Domain picker above the snippet before copyingthe banner’s Basic information

Step by step

  1. Open the banner (Account → Advertisers → advertiser → campaign → banner). The option appears only for a Code banner on a Standard / Non-standard / Mobile site placement, or a Template banner on a Standard / Non-standard site placement — and only for a role holding the Ajax invocation-code permission of that placement type, on a network with an AJAX invocation-code domain configured.

  2. Tick Enable passback functionality and save.

  3. Reopen the saved banner. A Banner passback code: block appears with a one-line <script> snippet; the ⓘ beside its label says to put it where the creative has nothing to show, and that it works with the Universal JS tag only. On a network with more than one AJAX invocation-code domain, a Domain picker above the block rebuilds the snippet for the domain the page’s Universal JS tag is served from (the first is preselected); the choice only changes the snippet you copy, nothing is saved with the banner.

    Banner Basic information with Enable passback functionality ticked and the Banner passback code snippet below it

  4. Give that snippet to the third party, to run on their no-fill branch. For tag and redirect flows that cannot post a message, put the $$PASSBACK_INFO$$ (or $$PASSBACK_INFO_ESC$$) macro in the fallback URL instead.

When a request arrives carrying that passback value, Epom excludes the named banner from selection for this request, writes a passback log record for it, and re-runs banner selection. What the snippet sends and how the macro expands: reference.

Caveats and exceptions

Passbacks are re-selections, with a cap. When the banner Epom picked cannot produce a usable response, the request drops it and re-selects — at most the larger of the placement’s deprecated Third-Party lookup limit and the chain’s Lookup depth times. Raising the chain’s depth silently raises that cap too; passback logging is suppressed on the retries so one passback is not counted twice; RTB (OpenRTB DSP) banners are never retried this way, except on Native placements. A passback from a blacklisted address is recorded as fraud and excluded from the impression subtraction, so the original impression stands. Details, the cases that still trigger a re-selection and how to read the per-reason counts: reference.

Who can do this, how the chain is walked and when the default code is returned are on Set up daisy chaining and passbacks.

Not working?

SymptomCheckWhere
The passback option is missing on the bannerNot a Code/Template banner on a site-type placement; or no Ajax invocation-code permission; or no AJAX domain configuredthe banner type and placement type; Admin → Users & access
The passback snippet does nothingThe page uses an iframe tag or a redirect flow — postMessage needs the Universal JS tag; use $$PASSBACK_INFO$$ in the fallback URL insteadthe page’s tag
The passback fires but the impression is still countedIt arrived from a blacklisted address and was recorded as fraud; or it could not be matched to an impressionthe Advanced report’s passback columns
Fewer passbacks counted than the partner sentRetries within one request suppress duplicate logging; rejected ones have no matching impressionthe Advanced report

The No ads column and a missing Daisy chaining card are on Set up daisy chaining and passbacks; a Google Ad Manager tag as the partner is on Google (GPT) passback tags.

Reference

The passback option, the snippet and the $$PASSBACK_INFO$$ macro are under Fallback fields outside the card on the hub; how a passback is counted and paid, and the re-selection cap, are on Daisy chaining and passbacks reference.

Related pages:

Related pages

Please disable Adblock
Are you using adblock? Disable it and reload the page to proceed to the destination page.

A registration has already been submitted from this page. Please try again in 10 minutes.