Connect with us

SEO

What Is Header Bidding?

Published

on

What Is Header Bidding?

The header bidding technology started to develop in 2015, and has since helped many publishers to grow their revenue by as much as 40% (and even, in some cases, to levels of 100% or more.)

What Is Header Bidding?

Header bidding is a cutting-edge technique where publishers offer their ad inventory to many ad exchanges, also called Supply-Side Platforms (or SSPs), simultaneously before making calls to their ad servers.

Here are the steps a publisher needs to pass to have this technology power up its monetization.

  • Apply to SSP partners and get approval.
  • Implement Prebid.JS on website.
  • Configure ad server.
  • Choose a consent management system.
  • Test and debug.

Applying To SSP Partners

There are hundreds of SSP partners available in the list to apply, but I would like to mention what I believe to be the most popular ones:

  • TripleLift.
  • Index Exchange.
  • Amazon UAM/TAM.
  • Xandr (formerly AppNexus).
  • Teads.
  • Pubmatic.
  • Sovrn.
  • Verizon.
  • Magnite (formerly Rubicon).
  • OpenX.
  • Sonobi.
  • GumGum.
  • Sharethrough.
  • Unurly.

One needs to find their online application form and pass through the company’s verification process. For example, in the case of Xandr, the contact page looks like this:

Screenshot from Xandr, December 2022 Xandr tool

Pay attention to the minimum inventory size required to be eligible for applying.

Yes, that is a staggering high of 50M ad impressions a month.

You may need quite an impressive website to be able to apply to some of the ad networks. We will call them further bidders, as they bid on inventory in real time.

However, not all SSPs have such high thresholds for application. For example, Sharethrough only requires 20M ad impressions.

Besides, they consider also audience quality, traffic geolocation, how much time users spend on the website, etc.

It typically takes a few weeks after applying to be approved and onboarded with them, so it can be a fairly time-consuming process that may even take months to finish.

How Does Prebid.js Work?

In nutshell, here is how Prebid.js works.

When a user opens a webpage, an ad request is made to all bidders (SSP partners).

Bidders respond with their CPM bids – let’s say $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 ad server, in our case, Google Ad Manager, the request is received and it knows that someone is paying $1.50 USD CPM for an ad. It runs another auction with Google Adsense or AdX.

If Google offers a higher CPM, then the Google Ad will be served.

If not, our ad with $1.50 CPM will win, and be served by our SSP partner.

Header Bidding Working SchemeScreenshot from Google Ad Manager, December 2022Header Bidding Working Scheme

The trick here is that auctions happen in real-time, which creates buying pressure on Google AdX to pay the highest CPM possible.

If Google AdX doesn’t have any competition, it will offer the lowest CPM possible –as it wants to buy inventory for the cheapest price possible.

With header bidding, bidders are able to compete and push CPMs (and therefore revenue) up.

There are two ways to implement header bidding:

  • Client-side: When the auction runs via JavaScript in the browser.
  • Server-side: When the auction is run on the server.

Let’s discuss client-side header bidding.

How To Implement Client-Side Header Bidding

In order to set up header bidding, we need to implement Prebid.js on our website and configure our Google Ad Manager (or ad server).

Implement Prebid.js On Your Website

Prebid.js is a header bidding platform that has more than 200 demand sources integrated.

You need to select the SSP partners you are working with from the customize page and download the library built for your specific configuration.

Don’t forget to select Consent Management modules to comply with GDPR and GPP privacy standards.

Below is the sample code taken from the official documentation.

<html>

    <head>        
        <script async src="https://www.googletagservices.com/tag/js/gpt.js"></script>
        <script async src="https://your-customized-prebid.js"></script>
        <script>
            var div_1_sizes = [
                [300, 250],
                [300, 600]
            ];
            var div_2_sizes = [
                [728, 90],
                [970, 250]
            ];
            var PREBID_TIMEOUT = 1000;
            var FAILSAFE_TIMEOUT = 3000;

            var adUnits = [
                {
                    code: '/19968336/header-bid-tag-0',
                    mediaTypes: {
                        banner: {
                            sizes: div_1_sizes
                        }
                    },
                    bids: [{
                        bidder: 'appnexus',
                        params: {
                            placementId: 13144370
                        }
                    },
                     { 
                      bidder: "conversant",
                       params: {site_id:"122869",secure:1}
                     }
                   ]
                },
                {
                    code: '/19968336/header-bid-tag-1',
                    mediaTypes: {
                        banner: {
                            sizes: div_2_sizes
                        }
                    },
                    bids: [{
                        bidder: 'appnexus',
                        params: {
                            placementId: 13144370
                        }
                    },
                    { 
                     bidder: "conversant",
                     params: {site_id:"122869",secure:1}
                    }
                     ]
                }
            ];
            
            var googletag = googletag || {};
            googletag.cmd = googletag.cmd || [];
            googletag.cmd.push(function() {
                googletag.pubads().disableInitialLoad();
            });

            var pbjs = pbjs || {};
            pbjs.que = pbjs.que || [];

            pbjs.que.push(function() {
                pbjs.addAdUnits(adUnits);
                pbjs.requestBids({
                    bidsBackHandler: initAdserver,
                    timeout: PREBID_TIMEOUT
                });
            });

            function initAdserver() {
                if (pbjs.initAdserverSet) return;
                pbjs.initAdserverSet = true;
                googletag.cmd.push(function() {
                    pbjs.que.push(function() {
                        pbjs.setTargetingForGPTAsync();
                        googletag.pubads().refresh();
                    });
                });
            }
            // in case PBJS doesn't load
            setTimeout(function() {
                initAdserver();
            }, FAILSAFE_TIMEOUT);

            googletag.cmd.push(function() {
                googletag.defineSlot('/19968336/header-bid-tag-0', div_1_sizes, 'div-1').addService(googletag.pubads());
                googletag.pubads().enableSingleRequest();
                googletag.enableServices();
            });
            googletag.cmd.push(function() {
                googletag.defineSlot('/19968336/header-bid-tag-1', div_2_sizes, 'div-2').addService(googletag.pubads());
                googletag.pubads().enableSingleRequest();
                googletag.enableServices();
            });

        </script>

    </head>

    <body>
        <h2>Basic Prebid.js Example</h2>
        <h5>Div-1</h5>
        <div id='div-1'>
            <script type="text/javascript">
                googletag.cmd.push(function() {
                    googletag.display('div-1');
                });

            </script>
        </div>

        <br>

        <h5>Div-2</h5>
        <div id='div-2'>
            <script type="text/javascript">
                googletag.cmd.push(function() {
                    googletag.display('div-2');
                });

            </script>
        </div>

    </body>

</html>

Let’s break down the code above.

  • The first lines load all required JS files and our customized Prebid.JS file.
  • Ad slots are defined in the adUnits array variable.
  • In the adslot definitions, you can see the SSP partners’ names and IDs you will be given when onboarding when them.
  • googletag.pubads().disableInitialLoad(); is called to disable ad request to be sent to Google Ad Manager until Prebid.js finishes the auction.
  • pbjs.requestBids function calls SSP partners and determines the winner.
  • initAdserver() function is called to send an ad request to the Google Ad Manager with hb_pb key, which contains the winning CPM value, e.g. hb_pb=”1.5″. (This step is connected with setting up Google Ad Manager in the next step.)
  • When Google Ad Manager gets the request with the winning bid, it runs its own auction in Google AdX, and sends back either the AdX ad with a higher CPM, or the ad of the winning SSP.

For your specific case, you may need to code differently and change the setup, but the principle stays the same.

Other than that, I would like to quickly go over how to implement lazy loading, because it is a little different.

How To Implement Lazy Loading

The Google tag for publishers has a lazy loading framework which will not work in the case of header bidding.

This is because you need to run an auction, and determine and set key values before sending a request to the ad server.

Because of that, I would advise using the Intersection Observer API to determine when to load the ad in the HTML <div> tag when it is about to enter into the viewport.

options = {
root: null, // relative to document viewport
rootMargin: '1500px', // margin around root. Values are similar to css property. Unitless values not allowed
threshold: 0 // visible amount of item shown in relation to root
};

your_observer = 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 ad server.

function observer_handler( entries, observer ) {

dynamicAdUnit =[{
code: 'your_html_div_id',
mediaTypes: {
banner: {
sizes: [728,90]
}
},
bids: [{ bidder: 'appnexus', params: { placementId: 13144370 } }, { bidder: "conversant", params: {site_id:"122869",secure:1} } ]
}];

pbjs.addAdUnits(dynamicAdUnit);

slot = window.googletag.defineSlot('/1055389/header-bid-tag-0', [728,90], 'your_html_div_id' ).addService(googletag.pubads());

lazySlotPrebid(slot, 'your_html_div_id')

}

function lazySlotPrebid(slot, div_id) {

pbjs.que.push(function() {
pbjs.request bids({
timeout: PREBID_TIMEOUT,
adUnitCodes: [div_id],
bidsBackHandler: function() {
pbjs.setTargetingForGPTAsync([div_id]);
googletag.pubads().refresh(slot);

});
});

} 
}// endd of initDynamicSlotPrebid

Now, let’s jump on setting up the ad server using Google Ad Manager.

How To Set Up GAM For Header Bidding

Ad servers need to have dozens of price priority line items with key hb_pb targeting all possible CPM values, such as hb_pb=0.04, hb_pb=0.03, etc.

hb_pb key valueshb_pb key value targetinghb_pb key values

This is the key point that makes the header bidding engine work.

  • The auction runs in the browser on page load.
  • The winning SSP partner is sent to GAM with a key value targeting hb_pb = 2.62.
  • Since the order has the same CPM value, GAM understands that there is a bid at $2.62.
  • GAM runs an AdX auction and has to pay more than $2.62 in order to win the bid and display a Google Ad.

As I mentioned above, you would need to build line items in GAM with certain granularity, say 0.01 – and for the CPM range $0-$20, you would need to create 2,000 line items, which are impossible to do manually.

For that, you would need to use GAM API.

Unfortunately, there are no solid solutions that you can simply download and run in one click.

It is a somewhat complex task, but thanks to contributors who built API tools (even though 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 Manager and understand the following:

Step 1: Enable API Access

In the Google Ad manager Global > General settings section, make sure API access is enabled.

Click on the Add service account button and create a user with the sample name “GAM API USER” and email “[email protected]” with admin rights.

GAM general settingsScreenshot from Google Ad Manager, December 2022GAM general settings

Step 2: Create A New Project

Navigate to Google API Console Credentials page.

From the project drop-down, choose Create a new project, enter a name for the project, and, optionally, edit the provided Project ID.

Click Create.

On the Credentials page, select Create credentials, then select Service account key.

Select New service account, and select JSON.

Click Create to download a file containing a private key.

Google API Console Credentials pageScreenshot from Google API Console Credentials page, Deccember 2022Google API Console Credentials page

 

Service account detailsScreenshot from Google API Console Credentials page, Deccember 2022Service account details
Fill in the service account details you’ve created above.

Assign the role “owner” and create the service account OAuth2 credentials.

Then, click on the created user and create JSON type key, and download it.

Service account JSON keyScreenshot from Google API Console Credentials page, Deccember 2022Service account JSON key

Step 3: Download Project

Download the project zip file and unzip it, directory (alternatively, you can use the git command tool to clone the repo).

Install composer for your operating system in order to build the project.

Step 4: Change your PHP.INI

Change your php.ini (located at /xampp/php/php.ini ) file and enable “extension=soap” by removing “;” in front of and set “soap.wsdl_cache_ttl=0” and restart Apache from the control panel of XAMPP.

Step 5: Create Subfolders And Build The Project

Once you have everything set up and unzipped, open composer.json file and change “googleads/googleads-php-lib”: “^44.0.0” to use the latest version “googleads/googleads-php-lib”: “^59.0.0”.

Check for the most fresh version at the moment you perform this.

Search and replace in /app/ folder of the project “v201911” with “v202202”, because that git project wasn’t updated since 2019, to use the latest version path of libraries.

Open the command line of your PC and switch to the directory where you’ve unzipped the files (using cd command or right-click inside the folder “Git bash here” if you have git installed), and run composer update in the PC terminal or git terminal.

It will create subfolders and build the project.

Step 6: Set Up Your Google Ad Manager Credentials

Move the downloaded JSON key “gam-api-54545-0c04qd8fcb.json”  file into the root folder of the project you’ve built.

Next, download adsapi_php.ini file and set up your Google Ad Manager credentials in it.

networkCode = "899899"
applicationName = "My GAM APP"
jsonKeyFilePath = "D:xampphtdocsdfp-prebid-lineitemsgam-api-54545-0c04qd8fcb.json"
scopes = "https://www.googleapis.com/auth/dfp"
impersonatedEmail = "[email protected]"

jsonKeyFilePath is the absolute directory path to the JSON key file in the folder root.

Step 7: Set The Content Of The File

Finally, navigate to the file /script/tests/ConnexionTest.php and set the content of the file like below:

putenv('HOME='.dirname(__DIR__)."/../");
require __DIR__.'/../../vendor/autoload.php';

$traffickerId = (new AppAdManagerUserManager())->getUserId();

if (is_numeric($traffickerId)) {
echo "n====Connexion OK====nn";
} else {
echo "n===Connexion KO====nn";
}

In your terminal (or git bash console) test the connection by running the command (if you are in the /script/tests/ folder).

php ConnexionTest.php

You should see a message “====Connection OK====”

Step 8: Configure The Parameters

Navigate to the file /script/tests/ConnexionTest.php in your project and open it.

Copy and paste the below code into that file, and configure the parameters in the $entry and $buckets arrays per your needs.

putenv('HOME='.dirname(__DIR__)."/../");
require __DIR__.'/../../vendor/autoload.php';

use AppScriptsHeaderBiddingScript;

$bucket_range = array();
$Your_Advertiser_Name="Sample_Advertiser";
$buckets =
["buckets" =>[
['precision' => 2, 'min' => 0, 'max' => 4.00, 'increment' => 0.01],
['precision' => 2, 'min' => 4.01, 'max' => 8.00, 'increment' => 0.05],
]
];

foreach ( $buckets["buckets"] as $k => $bucket ){

$request_bucket = array( 'buckets' => array( $bucket ) );

$order_name="Your_Order_name ".$bucket['min'].'-'.$bucket['max'];
// echo $order_name.'<br/><br/>';


$entry = [
'priceGranularity' => $request_bucket, // can be 'low', 'med', 'high', 'auto','dense', 'test'
'currency' => 'USD',
//'sizes' => [ [1,1] ,[160, 600], [250, 250], [300, 250], [300, 600], [320, 50], [320, 100], [300, 100], [336, 280], [728, 90], [970, 90], [970, 250]],
'sizes' => [ [250, 250] ],
'orderPrefix' => $Your_Advertiser_Name, //prebid advertiserName
'orderName' => $order_name
];
$script = new HeaderBiddingScript();
$script->createGlobalAdUnits($entry);

}

Optionally you can also specify ‘geoTargetingList’ => “dz, pk, ke, pt” or custom key value targeting customTargeting’ => [‘amp_pages’ => yes’] if you want your header bidding to work only when the custom key value is set.

Run the command below and it will start creating line items per the bucket settings you’ve specified.

php ConnexionTest.php

There is a tool using Python that is used similarly; you may want to give it a try as well.

Debugging

For debugging, there are a few browser add-ons you can use to see if the auction runs without errors.

Alternatively, open your webpage URL using “/?pbjs_debug=true” parameter at the end of the URL, and watch console logs messages.

You need to make sure that hb_pb key values are passed to Google Ad Manager. Use “/?google_console=1” at the end of the URL to open the GAM console, and click on “Delivery Diagnostics” of each ad unit.

You should see that hb_pb values are set and passed to the ad server.

GAM Deliver DiagnositcsScreenshot from Google API Console Credentials page, Deccember 2022GAM Deliver Diagnositcs

Choose A Consent Management System

Users’ privacy is one of the most important factors, and you want to make sure that you comply with both GDPR and GPP.

The detailed instructions on how to set up a consent management system in your wrapper are here.

There are many providers which comply with IAB’s latest standards, and here are a few of the most popular ones:

Conclusion

You may find it surprising that setting up header bidding involves so many steps, but it is really worth it to implement. It can easily boost your revenue by +30% or more by creating selling pressure on Google Ads.

This guide is for technically savvy users – but if you have questions and issues, there is an Adops slack channel you may subscribe to and ask questions to the community.

I hope that after reading this article, you will find it easier to set up header bidding and enhance the monetization of your website.

More resources:


Featured Image: Search Engine Journal

var s_trigger_pixel_load = false;
function s_trigger_pixel(){
if( !s_trigger_pixel_load ){
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 500);
window.removeEventListener(“scroll”, s_trigger_pixel, false );
console.log(‘s_trigger_pixel’);
}
s_trigger_pixel_load = true;
}
window.addEventListener( ‘scroll’, s_trigger_pixel, false);

window.addEventListener( ‘load2’, function() {

if( sopp != ‘yes’ && addtl_consent != ‘1~’ && !ss_u ){

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);

if( typeof sopp !== “undefined” && sopp === ‘yes’ ){
fbq(‘dataProcessingOptions’, [‘LDU’], 1, 1000);
}else{
fbq(‘dataProcessingOptions’, []);
}

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘header-bidding’,
content_category: ‘programmatic’
});
}
});

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address

SEO

Reddit Makes Game-Changing Updates to Keyword Targeting

Published

on

By

Reddit Makes Game-Changing Updates to Keyword Targeting

In a big move for digital advertisers, Reddit has just introduced a new Keyword Targeting feature, changing the game for how marketers reach their target audiences.

This addition brings fresh potential for PPC marketers looking to tap into Reddit’s highly engaged user base.

With millions of communities and conversations happening every day, Reddit is now offering advertisers a more precise way to get in front of users at the perfect moment.

The best part? They’re leveraging AI to make the process even more powerful.

Let’s break down why this is such an exciting development for digital advertisers.

Keyword Targeting for Conversation and Feed Placements

Reddit has always been about its vibrant communities, or “subreddits,” where users connect over shared interests and discuss a wide range of topics.

Until now, keyword targeting has only been available on conversation placements. Starting today, advertisers can use keyword targeting in both feed and conversation placements.

The targeting update allows advertisers to place ads directly within these conversations, ensuring they reach people when they’re actively engaged with content that’s related to their products or services.

For PPC marketers, this level of targeting means a higher chance of delivering ads to users who are in the right mindset.

Instead of serving ads to users scrolling passively through a general feed, Reddit is giving you the tools to place your ads into specific conversations, where users are already discussing topics related to your industry.

According to Reddit, advertisers who use keyword targeting have seen a 30% increase in conversion volumes. This is a significant lift for marketers focused on performance metrics, such as conversion rates and cost per acquisition.

Scaling Performance with AI-Powered Optimization

While precision is key, Reddit knows that advertisers also need scale.

Reddit mentioned two AI-powered solutions to help balance keyword targeting and scalability within the platform:

  • Dynamic Audience Expansion
  • Placement Expansion

Dynamic Audience Expansion

This feature works in tandem with keyword targeting to help advertisers broaden their reach, without sacrificing relevance.

Reddit’s AI does the heavy lifting by analyzing signals like user behavior and ad creative performance to identify additional users who are likely to engage with your ad. In essence, it’s expanding your audience in a smart, data-driven way.

For PPC marketers, this means more exposure without having to rely solely on manually selecting every keyword or interest.

You set the initial parameters, and Reddit’s AI expands from there. This not only saves time but also ensures that your ads reach a broader audience that’s still relevant to your goals.

Reddit claims campaigns using Dynamic Audience Expansion have seen a 30% reduction in cost per action (CPA), making it a must-have for marketers focused on efficiency and budget optimization.

Placement Expansion

Another standout feature is Reddit’s multi-placement optimization. This feature uses machine learning to determine the most effective places to show your ads, whether in the feed or within specific conversation threads.

This multi-placement strategy ensures your ads are delivered in the right context to maximize user engagement and conversions.

For PPC marketers, ad placement is a critical factor in campaign success. With Reddit’s AI optimizing these placements, you can trust that your ads will appear where they have the highest likelihood of driving action—whether that’s getting users to click, convert, or engage.

Introducing AI Keyword Suggestions

Reddit’s new AI Keyword Suggestions tool helps with this by analyzing Reddit’s vast conversation data to recommend keywords you might not have thought of.

It allows you to discover new, high-performing keywords related to your campaign, expanding your reach to conversations you might not have considered. And because it’s powered by AI, the suggestions are always based on real-time data and trends happening within Reddit’s communities.

This can be particularly helpful for marketers trying to stay ahead of trending topics or those who want to ensure they’re tapping into conversations with high engagement potential.

As conversations on Reddit shift, so do the keywords that drive those discussions. Reddit’s AI Keyword Suggestions help keep your targeting fresh and relevant, ensuring you don’t miss out on key opportunities.

New Streamlined Campaign Management

Reddit has also made strides in simplifying the campaign setup and management process. They’ve introduced a unified flow that allows advertisers to combine multiple targeting options within a single ad group.

You can now mix keywords, communities, and interests in one campaign, expanding your reach without overcomplicating your structure.

From a PPC perspective, this is huge. Simplifying campaign structure means you can test more variations, optimize faster, and reduce time spent on manual adjustments.

In addition, Reddit has enhanced its reporting capabilities with keyword-level insights, allowing you to drill down into what’s working and what’s not, giving you more control over your campaigns.

The Takeaway for PPC Marketers

For marketers working with Google Ads, Facebook, or Microsoft Advertising, this new update from Reddit should be on your radar.

The combination of keyword targeting, AI-driven audience expansion, and multi-placement optimization makes Reddit a serious contender in the digital advertising space.

If you’re looking to diversify your PPC campaigns, drive higher conversions, and optimize costs, Reddit’s new offerings provide a unique opportunity.

You can read the full announcement from Reddit here.

 

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

SEO

What The Google Antitrust Verdict Could Mean For The Future Of SEO

Published

on

By

What The Google Antitrust Verdict Could Mean For The Future Of SEO

In August 2024, Google lost its first major antitrust case in the U.S. Department of Justice vs. Google.

While we all gained some interesting insights about how Google’s algorithm works (hello, NavBoost!), understanding the implications of this loss for Google as a business is not the easiest to unravel. Hence, this article.

There’s still plenty we don’t know about Google’s future as a result of this trial, but it’s clear there will be consequences ahead.

Even though Google representatives have said they will appeal the decision, both sides are already working on proposals for how to restore competition, which will be decided by August 2025.

My significant other is a corporate lawyer, and this trial has been a frequent topic at the dinner table over the course of the last year.

We come from different professional backgrounds, but we have been equally invested in the outcome – both for our respective careers and industries. His perspective has helped me better grasp the potential legal and business outcomes that could be ahead for Google.

I will break that down for you in this article, along with what that could mean for the SEO industry and Search at-large.

Background: The Case Against Google

In August 2024, Federal Judge Amit Mehta ruled that Google violated the U.S. antitrust law by maintaining an illegal monopoly through exclusive agreements it had with companies like Apple to be the world’s default search engine on smartphones and web browsers.

During the case, we learned that Google paid Apple $20 billion in 2022 to be the default search engine on its Safari browser, thus making it impossible for other search engines like DuckDuckGo or Bing to compete.

This case ruling also found Google guilty of monopolizing general search text advertising because Google was able to raise prices on ad products higher than what would have been possible in a free market.

Those ads are sold via Google Ads (formerly AdWords) and allow marketers to run ads against search keywords related to their business.

Note: There is a second antitrust case still underway about whether Google has created illegal monopolies with open web display ad technology as well. Closing arguments will be heard for that in November 2024 with a verdict to follow

Remedies Proposed By The DOJ

On Oct. 8, 2024, the DOJ filed proposed antitrust remedies for Google. Until this point, there has been plenty of speculation about potential solutions.

Now, we know that the DOJ will be seeking remedies in four “categories of harm”:

  1. Search Distribution and Revenue Sharing.
  2. Accumulation and Use of Data.
  3. Generation and Display of Search Results.
  4. Advertising Scale and Monetization.

The following sections highlight potential remedies the DOJ proposed in that filing.

Ban On Exclusive Contracts

In order to address Google’s search distribution and revenue sharing, it is likely that we will see a ban on exclusive contracts going forward for Google.

In the Oct. 8 filing, the DOJ outlined exploring limiting or prohibiting default agreements, pre-installation agreements, and other revenue-sharing agreements related to search and search-related products.

Given this is what the case was centered around, it seems most likely that we will see some flavor of this outcome, and that could provide new incentives for innovation around search at Apple.

Apple Search Engine?

Judge Mehta noted in his judgment that Apple had periodically considered building its own search technology, but decided against it when an analysis in 2018 concluded Apple would lose more than $12 billion in revenue during the first five years if they broke up with Google.

If Google were no longer able to have agreements of this nature, we may finally see Apple emerge with a search engine of its own.

According to a Bloomberg report in October 2023, Apple has been “tinkering” with search technology for years.

It has a large search team dedicated to a next-generation search engine for Apple’s apps called “Pegasus,” which has already rolled out in some apps.

And its development of Spotlight to help users find things across their devices has started adding web results to this tool pointing users to sites that answer search queries.

Apple already has a web crawler called Applebot that finds sites it can provide users in Siri and Spotlight. It has also built its own search engines for some of its services like the App Store, Maps, Apple TV, and News.

Apple purchased a company called Laserlike in 2019, which is an AI-based search engine founded by former Google employees. Apple’s machine learning team has been seeking new engineers to work on search technologies as well.

All of these could be important infrastructure for a new search engine.

Implications For SEO

If users are given more choices in their default search engine, some may stray away from Google, which could cut its market share.

However, as of now, Google is still thought of as the leader in search quality, so it’s hard to gauge how much would realistically change if exclusive contracts were banned.

A new search engine from Apple would obviously be an interesting development. It would be a new algorithm to test, understand, and optimize for.

Knowing that users are hungry for another quality option, people would likely embrace Apple in this space, and it could generate a significant amount of users, if the results are high enough quality. Quality is really key.

Search is the most used tool on smartphones, tablets, and computers. Apple has the users that Google needs.

Without Apple’s partnership with Google, Apple has the potential to disrupt this space. It can offer a more integrated search experience than any other company out there. And its commitment to privacy is appealing to many long-time Google users.

The DOJ would likely view this as a win as well because Apple is one of the few companies large enough to fully compete across the search space with Google.

Required Sharing Of Data To Competitors

Related to the accumulation and use of data harm Google has caused, the DOJ is considering a remedy that forces Google to license its data to competitors like Bing or DuckDuckGo.

The antitrust ruling found that Google’s contracts ensure that Google gets the most user data, and that data streams also keep its competitors from improving their search results to compete better.

In the Oct. 8 filing, the DOJ is considering forcing Google to make: 1) the indexes, data, fees, and models used for Google search, including those used in AI-assisted search features, and 2) Google search results, features, and ads, including the underlying ranking signals available via API.

Believe it or not, this solution has precedent, although certainly not at the same scale as what is being proposed for Google.

The DOJ required AT&T to provide royalty-free licenses to its patents in 1956, and required Microsoft to make some of its APIs available to third parties for free after they lost an antitrust case in 1999.

Google has argued that there are user privacy concerns related to data sharing. The DOJ’s response is that it is considering prohibiting Google from using or retaining data that cannot be shared with others because of privacy concerns.

Implications For SEO

Should Google be required to do any of this, it would be an unprecedented victory for the open web. It is overwhelming to think of the possibilities if any of these repercussions were to come to fruition.

We would finally be able to see behind the curtain of the algorithm and ranking signals at play. There would be a true open competition to build rival search engines.

If Google were no longer to use personalized data, we might see the end of personalized search results based on your search history, which has pros and cons.

I would also be curious what would happen to Google Discover since that product provides content based on your browsing history.

The flip side of this potential outcome is that it will be easier than ever to gamify search results again, at least in the short term.

If everyone knew what makes pages rank in Google, we would be back in the early days of SEO, when we could easily manipulate rank.

But if others take the search algorithm and build upon it in different ways, maybe that wouldn’t be as big of a concern in the long term.

Opting Out Of SERP Features

The DOJ filing briefly touched on one intriguing remedy for the harm Google has caused regarding the generation and display of search results.

The DOJ lawyers are proposing that website publishers receive the ability to opt out of Google features or products they wish to.

This would include Google’s AI Overviews, which they give as an example, but it could also include all other SERP features where Google relies on websites and other content created by third parties – in other words, all of them.

Because Google has held this monopoly, publishers have had virtually no bargaining power with Google in regards to being included in SERP features without risking complete exclusion from Google.

This solution would help publishers have more control over how they show up in the search results.

Implications For SEO

This could be potentially huge for SEO if the DOJ does indeed move forward with requiring Google to allow publishers to opt out of any and all features and products they wish without exclusion in Google’s results altogether.

There are plenty of website publishers who do not want Google to be able to use their content to train its AI products, and wish to opt out of AI Overviews.

When featured snippets first came about, there was a similar reaction to those.

Based on the query, featured snippets and AI Overviews have the ability to help or harm website traffic numbers, but it’s intriguing to think there could be a choice in the matter of inclusion.

Licensing Of Ad Feeds

To address advertising scale and monetization harm caused by Google, the DOJ filing provided a few half-baked solutions related to search text advertising.

Because Google holds a 91% market share of search in the U.S., other search engines have struggled to monetize through advertising.

One solution is to require Google to license or syndicate its ad feed independent of its search results. This way, other search engines could better monetize by utilizing Google’s advertising feed.

It is also looking at remedies to provide more transparent and detailed reporting to advertisers about search text ad auctions and monetization, and the ability to opt out of Google search features like keyword expansion and broad match that advertisers don’t want to partake in.

Implications For SEO

I don’t see obvious implications for SEO, but there are plenty for our friends in PPC.

While licensing the Google ad feed is intriguing in order to help other search engines monetize, it doesn’t get at the issue of Google overcharging advertisers in their auctions.

More thought and creativity might be needed here to find a solution that would make sense for both creating more competition in search and fairness for advertisers.

They are certainly on the right track with more transparency in reporting and allowing advertisers to opt out of programs they don’t want to be part of.

Breaking Up Of Google

The DOJ lawyers are also considering “structural remedies” like forcing Google to sell off parts of its business, like the Chrome browser or the Android operating system.

Divesting Android is the remedy that has been discussed the most. It would be another way to prevent Google from having a position of power over device makers and requiring them to enter into agreements for access to other Google product apps like Gmail or Google Play.

If the DOJ forced Google to sell Chrome, that would just be another way to force them to stop using the data from it to inform the search algorithm.

There are behavioral remedies already mentioned that could arguably accomplish the same thing, and without the stock market-shattering impact of a forced breakup.

That said, depending on the outcome of the U.S. election, we could see a DOJ that feels empowered to take bigger swings, so this may still be on the table.

The primary issue with this remedy is that Google’s revenue largely comes from search advertising. So, if the goal is to reduce its market share, would breaking up smaller areas of the business really accomplish that?

Implications For SEO

If Android became a stand-alone business, I don’t see implications for SEO because it isn’t directly related to search.

Also, Apple controls so much of the relevant mobile market that spinning Android off would have little to no effect in regards to addressing monopolistic practices.

If Chrome were sold, Google would lose the valuable user signals that inform Navboost in the algorithm.

That would have some larger implications for the quality of its results since we know, through trial testimony, that those Chrome user signals are heavily weighted in the algorithm.

How much of an impact that would have on the results may only be known inside Google, or maybe not even there, but it could be material.

Final Thoughts

There is so much to be decided in the year (potentially years) to come regarding Google’s fate.

While all of the recent headlines focus on the possibility of Google being broken up, I think this is a less likely outcome.

While divesting Chrome may be on the table, it seems like there are easier ways to accomplish the government’s goals.

And Android and Google Play are both free to customers and rely on open-source code, so mandating changes to them doesn’t seem the most logical way to solve monopolistic practices.

I suspect we’ll see some creative behavioral remedies instead. The banning of exclusive contracts feels like a no-brainer.

Of all the solutions out there, requiring Google to provide APIs of Google search results, ranking signals, etc. is by far the most intriguing idea.

I cannot even imagine a world where we have access to that information right now. And I can only hope that we do see the emergence of an Apple search engine. It feels long overdue for it to enter this space and start disrupting.

Even with Google appealing Mehta’s decision, the remedy proposals will continue ahead.

In November, the DOJ will file a more refined framework, and then Google will propose its own remedies in December.

More resources:


Featured Image: David Gyung/Shutterstock

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

SEO

Snapchat Is Testing 2 New Advertising Placements

Published

on

By

Snapchat Is Testing 2 New Advertising Placements

The Snapchat ad ecosystem just expanded with two new placement options.

On Tuesday, Snap announced they started testing on two new placements:

  • Sponsored Snaps
  • Promoted Places

While not available to the general public yet, Snap provided information on the test, including their launch partners and more about the ad placements.

The goal of these placements are for brands to expand their reach across some of the most widely adopted parts of the platform.

Sponsored Snaps Ad Placement

Snapchat is testing a new Sponsored Snaps placement with Disney, in the announcement from October 8th.

The Sponsored Snaps placement shows a full-screen vertical video to users on Snapchat.

Users can then opt-in to opening the Snap, with options to engage with the advertiser in one of two ways:

  • Sending a direct message to the advertiser by replying
  • Use the call-to-action to open the link chosen by the advertiser.

Sponsored Snaps aren’t delivered via a push notification and will appear differently than other Snaps in a user’s inbox.

After a certain amount of time, any unopened Sponsored Snaps disappear from a user’s inbox.

Promoted Places Ad Placement

Snap partnered with two other brands for their Promoted Places ad placement test: McDonalds and Taco Bell.

This new ad placement shows on the Snap Map, which is meant to help users discover new places they may want to visit.

Promoted Places will highlight sponsored placements of interest within the Snap Map.

In early testing, Snap said they’ve found adding places as “Top Picks” drives a typical visitation lift of 17.6% for frequent Snapchat users.

They also mentioned the possibility of exploring ideas around customer loyalty on the Snap Map in future phases.

Summary

Snap hasn’t yet announced how long these ad placement tests will run, or when they’ll be available for broader advertisers.

Snap said the Sponsored Snaps and Promoted Places placements will evolve from feedback within the Snapchat community and the brands partnered with them at launch.

In the future, there’s possibility of integrating features like CRM systems and AI chatbot support to make communication more streamlined between brands and Snapchat users.

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

Trending