With over 4,500 publishers and counting, it’s safe to say we’ve seen our fair share of things that just don’t play well with ads. Post builders can be one of them. (Also known as page builders and visual composers). 

We recently wrote a blog post that answers many of the broader questions about post builders and how they interact with ads. You can check it out here!

We thought it could be helpful to also break down what’s happening technically in your post’s HTML with the many different kinds of post builders. So why exactly don’t ads and post builders get along?

We’re here to answer that!

Let’s start off by noting that post and page builders can be excellent tools for users wanting to design more advanced page layouts. We definitely don’t want to discourage users from utilizing builders in the right places on their site! They are great tools for things like landing pages, about pages, sales pages and the like. Utilizing builders in those places should not impact your ad performance.

The trouble with ads comes when publishers implement builders on a significant amount of their post content. This is due to the way builders alter your posts' HTML which affects our script's ability to place ads effectively.

Simply put, post builders break the HTML structure of your site’s code by automatically adding wrapped <div> containers around your post content. It basically makes it very difficult to effectively target your in-content ads. 

Our script works by targeting a unique CSS selector that identifies the main content element of your post. Our script then intelligently loads in-content ads between elements (your post’s content) that are direct descendants of that main content container.

When you’re using a page builder, your post’s content isn’t appearing directly within that main content container, making it difficult for our script to find placements for your in-content ads. We wanted to give our publishers some examples of exactly what post builders are doing to the content on your site and why they have such a big impact on your ads. 

Every post builder is different, so we’re rounding up the most common builders we see publishers using on a day-to-day basis. This should give you a visual idea of WHY post builders affect ad performance and why we don’t typically recommend them on posts if you can help it.

Normal WordPress:

First let’s take a look at what the HTML looks like in a normal Wordpress post. You’ll notice that the main content container wraps those content paragraphs without interruption. Ads can be seamlessly placed between those paragraphs with our in-content ad logic. 


Now let’s take a look at a popular page builder, Thrive Editor. The content paragraphs aren’t set up as direct descendents of the Main Content Container like a normal Wordpress post. Instead, the content paragraphs are nested within a <div> that hides where those paragraphs are located from our script wrapper.


Elementor is another post builder we see publishers using quite frequently. The best and most consistent approach when using builders is to try to have each section, block, or widget contain no more than 3-4 paragraphs or images. 

On this Elementor post, there are only 4 sections available for our script to target. The third section in particular (see screenshot below) contains over 9000px high worth of content. Elementor is wrapping a majority of that post’s content within that one section. Because of the sheer size, all of that content can’t be seen by our script.

It’s typical for builders to nest your content really far within your post’s HTML. In this screenshot of the Elementor post builder below, you can see how deep the majority of your posts content is nested away from that initial content container. 

The post’s content is being placed within the 3rd section of the post’s HTML and within that section, it’s nested inside of 7 more <div>’s. That makes it hard for our script wrapper to locate the content. 

While we could attempt to target that 3rd section for in-content ads, there’s no guarantee that selector would work across all current and future posts. It’s likely that your content will appear within different sections throughout the different posts on your site, depending on how your posts are set up. 

If those paragraphs were split up into equal length sections then our script could more evenly and consistently place in-content ads.  

Here’s a post using Elementor that has evenly spaced sections and therefore would allow for more ads as a result:


With Divi, each section is divided into rows which causes the majority of your post’s content to be separated into those different numbered rows. This also means there is no guarantee targeting in-content ads for a particular row will work across all current and future posts. 

You can see how Divi is also nesting your content within multiple <div>’s making it hard for our script wrapper to access.

WP Bakery(Visual Composer):

Another page builder that comes across our Support Engineer’s inbox frequently, WP Bakery. 

With WP Bakery, the sections in your post’s HTML don’t include classes with numbers which makes it even more difficult to target areas that hold the majority of your post’s content. 

They also all share very common class names which makes specifying the location even more difficult.

In the screenshot below, the Mediavine script is looking for that main content container, but the content is nested within those <div>’s. 

Beaver Builder:

With Beaver Builder, each section is given specific class names that are individual to each post.  This means that the best location on one post will not be the same on another post.  This is another reason why it’s difficult to pick a good selector that gives adequate ad coverage.

This should help give you a visual idea of exactly what our script wrapper is viewing when attempting to target in-content ads within posts using builders.

You can see how each builder wraps your post’s content differently and why it makes it a bit difficult for our script wrapper to place in-content ads on posts with paragraphs that aren’t direct descendents of the main content container. 

We still think builders can be an great tool for the pages throughout your site!

But as far as using builders on posts go, we always want publishers to be aware of anything that could be having a negative impact your ad performance. 

Did this answer your question?