Keep Invalid Traffic Out of Your Prebid Auctions

The Transfon Security RTD module checks every page view for bots and invalid traffic before the auction, tells your bidders and ad server, and can stop bid requests for invalid traffic.

Prebid.js RTD moduleBidder signalAd server key-valueWorks with any ad server

The module is being submitted to the Prebid.js project. Until it is part of a Prebid.js release, contact us for a Prebid.js build that includes it.

How it works

  1. Step 1

    Check the page view

    Before the auction, the module asks Transfon Security whether the visit is a real person or invalid traffic, such as a bot or automated browser.

  2. Step 2

    Pass the signal

    Every bidder receives tss_qs in the first party data, and your ad server receives tss_qs as a key-value, so demand partners and your own line items can act on it.

  3. Step 3

    Stop invalid requests

    Optionally, the module removes all bid requests for page views marked invalid or matching your project's block rules, so bots never reach your demand partners.

  4. Step 4

    Visualize bot traffic

    Your Transfon Security dashboard shows how much of your Prebid traffic is invalid, and why: bots, automated browsers, data centers and more.

Set up the module

  1. Create a project in Transfon Security and copy its license from the Installation page. A license is 10 characters, for example abcdef1234.
  2. Build Prebid.js with the RTD core module and the provider: gulp build --modules=rtdModule,transfonSecurityRtdProvider
  3. Add the provider to your Prebid config:
pbjs.setConfig({
  realTimeData: {
    auctionDelay: 500,
    dataProviders: [{
      name: 'transfonSecurity',
      waitForIt: true,
      params: {
        licenseId: 'YOUR_LICENSE',
        blockIvt: false
      }
    }]
  }
});

Parameters

NameTypeDescriptionDefault
nameStringMust be transfonSecurity
waitForItBooleanWait for the verdict, up to auctionDelay, before the auction startsfalse
params.licenseIdStringYour Transfon Security project license (required)
params.blockIvtBooleanRemove all bid requests when tss_qs is 0 or the page view matches the project's block rulesfalse
params.timeoutNumberVerdict timeout in milliseconds1000

What the module sends

WhereKeyValues
Bidders (all, including Prebid Server)ortb2.site.ext.data.tss_qs1 valid traffic, 0 invalid traffic
Ad server targeting, per ad unittss_qs"1" or "0"
  • The auction is never held up: if the verdict is not back within auctionDelay, the auction runs as normal.

Filter invalid traffic in Google Ad Manager

  1. In Inventory, Key-values, create a key named tss_qs with the values 0 and 1.
  2. Run a report by tss_qs first to see how much of your inventory is invalid traffic.
  3. Target the line items you want to protect with tss_qs is not 0. Do not use "is 1": page views without a verdict carry no key, and "is not 0" keeps serving them.

Works with any ad server

Google Ad Manager display

pbjs.setTargetingForGPTAsync() sends tss_qs with the other Prebid keys. No extra code.

Google Ad Manager video

Prebid's GAM video module adds tss_qs to cust_params when it builds the VAST URL, as long as you pass the ad unit to buildVideoUrl.

Xandr (AST)

pbjs.setTargetingForAst() sends tss_qs with the other Prebid keys. No extra code.

Other ad servers

Equativ, Adform, Kevel, Adnuntius, FreeWheel or an in-house ad server: read tss_qs from pbjs.getAdserverTargeting() and pass it the same way you pass the hb_ keys.

No ad server

If Prebid renders the winning ad directly, the key-value is not used. Bidders still receive tss_qs, and blockIvt stops bid requests for invalid traffic.

Read the key-value for another ad server

pbjs.requestBids({
  bidsBackHandler: function () {
    var targeting = pbjs.getAdserverTargeting();
    // targeting['div-1'].tss_qs is "1" or "0"
    // pass it to your ad server with the hb_ keys
  }
});

Module or tag?

The RTD module is the quickest way to protect Prebid auctions: it needs only a Prebid build and a config change. The Transfon Security tag adds browser checks and protects the whole site, not just the auction. You can run both: each visit is still checked and counted once.

Already running the tag? Add data-prebid="signal" to it and the tag sends tss_qs to bidders and Google Ad Manager without any Prebid change, or data-prebid="block" to also skip bid requests for invalid traffic.

The module runs in Prebid.js in the browser. For AMP pages, apps and server to server setups, use the tag or the Transfon Security API.

Frequently asked questions

What is the Transfon Security RTD module?

It is a Prebid.js Real-Time Data provider, transfonSecurity, that checks each page view for invalid traffic before the auction. It passes the result to bidders as site.ext.data.tss_qs and to the ad server as the tss_qs key-value, and can stop bid requests for invalid traffic.

How do I filter invalid traffic in Google Ad Manager?

Create a key named tss_qs with the values 0 and 1, then target your line items with "tss_qs is not 0". Page views without a verdict carry no key and keep serving, so real visitors are never blocked by a slow response.

What happens if the verdict is late?

The auction is never held up. If the verdict does not arrive within auctionDelay, the auction runs as normal, so real visitors always see ads.

Does it work without Google Ad Manager?

Yes. Bidders receive tss_qs whatever ad server you use, and blockIvt works in every setup. Xandr AST picks up the key-value automatically, and other ad servers can read it from pbjs.getAdserverTargeting().

Do I still need the Transfon Security tag?

No. The module works on its own. If you already run the Transfon Security tag, you can get the same protection without changing your Prebid build by adding one attribute to the tag.

How does it handle consent?

The module follows your consent setup in Prebid. Data is reported only when consent allows it, cookies are used only with consent, and invalid traffic is still detected without them.

Bid on People, Not Bots

Give your demand partners a clean signal on every page view and keep invalid traffic out of your auctions and your ad server.

Stay ahead of the publishing curve

Privacy, security, monetization, and performance insights. A few emails a month, no spam.

By subscribing you agree to our privacy policy.