The header bidding technology began to develop in 2015, and has actually considering that assisted lots of publishers to grow their earnings by as much as 40% (and even, in some cases, to levels of 100% or more.)
What Is Header Bidding?
Header bidding is an innovative strategy where publishers offer their ad inventory to lots of advertisement exchanges, also called Supply-Side Platforms (or SSPs), simultaneously before making calls to their advertisement servers.
Here are the actions a publisher needs to pass to have this technology power up its monetization.
- Apply to SSP partners and get approval.
- Implement Prebid.JS on site.
- Configure ad server.
- Select a permission management system.
- Test and debug.
Applying To SSP Partners
There are numerous SSP partners readily available in the list to use, however I wish to mention what I believe to be the most popular ones:
- Index Exchange.
- Amazon UAM/TAM.
- Xandr (previously AppNexus).
- Magnite (formerly Rubicon).
One needs to discover their online application form and travel through the business’s verification procedure. For example, in the case of Xandr, the contact page looks like this:
Screenshot from Xandr, December 2022 Take note of the minimum inventory size needed to be eligible for using. Yes, that is an incredible high of 50M ad impressions a month. You may require rather an impressive website to be able to apply to some of the advertisement networks. We will call them additional bidders, as they bid on stock in genuine time. Nevertheless, not all SSPs have such high thresholds for application.
For example, Sharethrough just needs 20M ad impressions. Besides, they think about likewise audience quality, traffic geolocation, how much time users spend on the website, etc. It usually takes a couple of weeks after applying to be approved and onboarded
with them, so it can be a relatively lengthy procedure that may even take months to end up. How Does Prebid.js Work? In nutshell, here is how Prebid.js works. When a user opens a web page, an ad request is made to all bidders(SSP partners). Bidders react with their CPM bids– let’s state$1
and$ 1.50– and Prebid.js makes a request to the ad server, with the highest
CPM targeting. In this case, that would be $1.50. At the advertisement server, in our case, Google Advertisement Supervisor, the demand is received and it understands that someone is
paying $1.50 USD CPM for an advertisement. It runs another auction with Google Adsense or AdX. If Google uses a higher CPM, then the Google Advertisement will be served. If not, our ad with $1.50 CPM will win, and be served
by our SSP partner. Screenshot from Google Ad Supervisor, December 2022 The technique here is that auctions occur in real-time, which creates buying pressure on Google AdX to pay the highest
CPM possible. If Google AdX does not have any competitors, it will offer the lowest CPM possible– as it wishes to purchase stock for the least expensive cost
possible. With header bidding, bidders have the ability to contend and press CPMs (and therefore profits) up. There are two ways to execute header bidding
worked on the server. Let’s discuss client-side header bidding. How To Carry Out Client-Side Header Bidding In order to establish header bidding, we require to carry out Prebid.js on our website and configure our
Google Ad Manager(or ad server).
Execute Prebid.js On Your Website Prebid.js is a header bidding platform that has more than 200 demand sources incorporated. You require to choose the SSP partners you are working with
from the customize page and download the library built for your particular configuration. Don’t forget to choose Consent Management modules to comply
with GDPR and GPP personal privacy standards. Below is the sample code drawn from the main paperwork. var div_1_sizes=[ [300, 250]
, [300, 600]]; var div_2_sizes= [[
728, 90], [970, 250]]
Fundamental Prebid.js Example
Let’s break down the code above.
- The very first lines pack all needed JS files and our personalized Prebid.JS file.
- Ad slots are defined in the adUnits selection variable.
- In the adslot meanings, you can see the SSP partners’ names and IDs you will be given when onboarding when them.
- googletag.pubads(). disableInitialLoad(); is called to disable advertisement demand to be sent to Google Advertisement Supervisor up until Prebid.js finishes the auction.
- pbjs.requestBids operate calls SSP partners and determines the winner.
- initAdserver() function is called to send an advertisement request to the Google Advertisement Supervisor with hb_pb secret, which contains the winning CPM worth, e.g. hb_pb=”1.5 ″. (This action is gotten in touch with setting up Google Advertisement Manager in the next step.)
- When Google Advertisement Manager gets the demand with the winning bid, it runs its own auction in Google AdX, and sends back either the AdX advertisement with a higher CPM, or the ad of the winning SSP.
For your particular case, you may require to code in a different way and change the setup, however the concept remains the same.
Other than that, I would like to quickly go over how to implement lazy loading, because it is a little various.
How To Implement Lazy Loading
The Google tag for publishers has a lazy loading framework which will not operate in the case of header bidding.
This is because you need to run an auction, and determine and set essential worths before sending a request to the ad server.
Because of that, I would advise using the Crossway Observer API to determine when to fill the advertisement in the HTML
alternatives = ; your_observer = brand-new IntersectionObserver( observer_handler, options ); your_observer. observe( goog_adslots [i]; In the observer_handler call back function, you can run the prebid auction and call the advertisement server.
function observer_handler( entries, observer) 1055389 function lazySlotPrebid(slot, div_id) pbjs.que.push(function() // endd of initDynamicSlotPrebid Now, let’s jump on setting up the ad server utilizing Google Ad Supervisor.
How To Establish GAM For Header Bidding
Ad servers require to have dozens of rate concern line items with essential hb_pb targeting all possible CPM worths, such as hb_pb=0.04, hb_pb=0.03, etc hb_pb key value targeting
 This is the bottom line that makes the header bidding engine work. The auction runs in the web browser on page load.
As I mentioned above, you would need to build line items in GAM with certain granularity, state 0.01– and for the CPM range $0-$20, you would need to create 2,000 line products, which are impossible to do by hand.
For that, you would require to use GAM API.
Regrettably, there are no strong options that you can just download and run in one click.
It is a somewhat complicated job, however thanks to factors who constructed API tools (although they are not actively supporting them), we can still modify it a little and make it work.
Let’s dive into how to set up Google Ad Supervisor and understand the following:
Step 1: Allow API Gain Access To
In the Google Advertisement supervisor Global > General settings area, make certain API access is allowed.
Click on the Include service account button and create a user with the sample name “GAM API USER” and email “[email protected]” with admin rights.
Screenshot from Google Ad Manager, December 2022 Action 2: Create A New Project
Browse to Google API Console
Credentials page. From the task drop-down, pick Produce
a brand-new project, get in a name for the job, and, optionally, edit the offered Task ID. Click Create.
On the Qualifications page, choose Produce credentials, then select Service account secret.Select New service account, and choose JSON
. Click Develop to download a file consisting of a personal key. Screenshot from Google API Console Credentials page, Deccember 2022 Screenshot from Google API Console Qualifications page, Deccember 2022 Fill in the service account information you have actually produced above. Assign the role “owner” and create the service account OAuth2 qualifications. Then, click on the produced user and produce JSON type secret, and download it. Screenshot from Google API Console Credentials page, Deccember 2022 Step 3: Download Task Download the task zip file and
unzip it, directory site(additionally, you can utilize the git command tool to clone the repo). Set up composer for your os in order to construct the task. Step 4: Modification your PHP.INI Modification your php.ini( situated at/ xampp/php/php. ini)file and make it possible for”
extension=soap”by eliminating”;” in front of and set”soap.wsdl _ cache_ttl=0″ and restart Apache from the control panel of XAMPP. Step 5: Develop Subfolders And Build The Project When you have whatever set up
and unzipped, open composer.json file and change”googleads/googleads-php-lib”:”^ 44.0.0 “to use the current version” googleads/googleads-php-lib “:”^ 59.0.0″. Check for the most fresh variation at the minute you perform this. Browse and replace in/ app / folder of the project”v201911″with” v202202″, since that git project was
n’t upgraded considering that 2019, to use the most recent variation path of libraries. Open the command line of your PC and switch to the directory site where you have actually unzipped the files(using cd command or right-click inside the folder” Git celebration here “if you have git installed), and run composer update in the PC terminal or git terminal. It will produce subfolders and develop the project. Step 6: Establish Your Google Advertisement Supervisor Credentials Move the downloaded JSON key “gam-api-54545-0c04qd8fcb. json” file into the root folder of
the job you have actually constructed. Next, download adsapi_php. ini file and established your Google Advertisement Supervisor qualifications in it. networkCode= “899899” applicationName =”My GAM APP” jsonKeyFilePath=”
D: xampp htdocs dfp-prebid-lineitems gam-api-54545-0c04qd8fcb. json”scopes=”https://www.googleapis.com/auth/dfp” impersonatedEmail =” [email protected]”jsonKeyFilePath is the absolute directory course to the JSON key file in the folder root. Action 7: Set The Content Of The File Lastly, browse to the file/ script/tests/ConnexionTest
. php and set the content of the file like listed below: putenv(‘ HOUSE =’. dirname( __ DIR __ ).
“/./” ); need __ DIR __.’/./ ./ vendor/autoload. php’; $traffickerId=(new App AdManager UserManager ()) -> getUserId (); if(is_numeric($traffickerId)) else echo” n===Connexion KO==== n n “; In your terminal(or git celebration console) test the connection by running the command(if you are in the/ script/tests/ folder). php ConnexionTest.php You need to see a message”= == =Connection okay====” Step 8: Set Up The Parameters Browse to the
file/ script/tests/ConnexionTest. php in your job and open it. Copy and paste the below code into that file, and configure the criteria in the $entry and$buckets varieties per your needs.
putenv(‘ HOUSE= ‘. dirname (__ DIR __).”/./”); need __ DIR __.’/././ vendor/autoload. php ‘; use App Scripts HeaderBiddingScript;$bucket_range=variety(); $Your_Advertiser_Name=’Sample_Advertiser’; $pails=[“pails”=> [[‘precision’=> 2,’minutes ‘=> 0,’max’= > 4.00,’increment’= > 0.01], [‘ precision ‘= > 2, ‘minutes’ => 4.01, ‘max’ => 8.00, ‘increment’ => 0.05],]]; foreach ($ containers [” pails”] as $k => $bucket) can be ‘low’, ‘med’, ‘high’, ‘vehicle’,’dense’, ‘test’ ‘currency’ => ‘USD’,
Additionally you can also specify ‘geoTargetingList’ => “dz, pk, ke, pt” or custom-made crucial worth targeting customTargeting’ => [‘ amp_pages’ => yes’] if you desire your header bidding to work only when the custom essential value is set.
Run the command listed below and it will begin creating line items per the container settings you have actually defined.
There is a tool utilizing Python that is used similarly; you might wish to provide it a shot also.
For debugging, there are a few web browser add-ons you can utilize to see if the auction runs without mistakes.
Additionally, open your web page URL utilizing “/? pbjs_debug=true” specification at the end of the URL, and view console logs messages.
You require to ensure that hb_pb key worths are passed to Google Ad Manager. Use “/? google_console=1” at the end of the URL to open the GAM console, and click on “Shipment Diagnostics” of each advertisement system.
You ought to see that hb_pb values are set and passed to the ad server.
Screenshot from Google API Console Qualifications page, Deccember 2022
Select A Consent Management System
Users’ privacy is one of the most crucial factors, and you wish to make sure that you adhere to both GDPR and GPP.
The comprehensive instructions on how to set up a permission management system in your wrapper are here.
There are lots of providers which adhere to IAB’s most current requirements, and here are a few of the most popular ones:
You may find it surprising that establishing header bidding involves so many actions, but it is actually worth it to carry out. It can quickly enhance your income by +30% or more by creating selling pressure on Google Ads.
This guide is for technically smart users– however if you have concerns and issues, there is an Adops slack channel you may register for and ask concerns to the community.
I hope that after reading this short article, you will find it much easier to establish header bidding and boost the monetization of your site.
Included Image: SMM Panel