Create Facebook Pixel Events for Scroll Depth

A week ago, we discussed how to create Facebook pixel events for time spent on a page. This week, let’s create Facebook pixel events for scroll depth.

If you read last week’s post, portions of this post will be repetitive. But I want to be sure that, if you missed that post, you know how to set up the base pixel in Google Tag Manager and test the events.

I’ll go through even more detail in my upcoming Facebook Pixel Masterclass (the first lesson is free).

The Problem: Low-Quality Traffic

As discussed a week ago, the foundation of my marketing strategy is driving traffic to my website. I use organic content, email updates, and Facebook ads to send a constant pipeline of people to my site. That starts my funnel, where I hope to get them on my email list (usually via a free offer) before making a single-product sale and, hopefully, ongoing membership.

The quality of this funnel is reliant on the quality of that initial traffic. If my website is flooded by low-quality visits (typically reflected by a quick exit), my other efforts will fall apart.

I had become increasingly skeptical of results I was seeing from Traffic campaigns promoting blog posts using Landing Page Views optimization. I would occasionally see runs of too-good-to-be-true results. After digging further, the culprits were typically source country or placement (Audience Network almost always sends low-quality traffic).

Why does this happen? Simple: Facebook cares about volume and costs without care regarding quality. They don’t hide from this fact, either…

Facebook Landing Page Views Optimization

When optimizing for Landing Page Views (after clicking the ad, the website and Facebook pixel load), Facebook will try to get you the most LPVs for the lowest cost. It doesn’t matter whether those are three-second or three-hour views. Facebook doesn’t care.

This may not matter when it comes to sales. A $100 sale is a $100 sale. But there is a huge variance in the quality of a Landing Page View.

The Solution: Facebook Pixel Event for Scroll Depth

Scroll depth means how far down the page someone scrolls when viewing a page. While time on a page is a good indicator of quality, a visitor could theoretically spend three minutes staring at the title, and that’s not a high-quality visitor. We need another indicator of visit quality. Logging visits that result in viewing most or all of a post is a good option.

We want Facebook to track, report, optimize for, and even target based on how far someone scrolls on a page of our website. We can force Facebook to care about the quality of the traffic they are sending.

By creating a Facebook pixel event to create a log of visits based on 10-percent multiples (50, 60, 70, 80, 90, and 100 percent), we can then do the following specific things:

  1. Create Custom Conversions based on these events
  2. Add columns to our ad reports for number and cost of these events to get a clearer view of ability to drive quality traffic
  3. Optimize for any of these specific events to focus on targeting and driving high-quality visits
  4. Create website custom audiences of those who performed these events for high-quality targeting

A member of my team did this for me using Google Tag Manager. I am going to walk through the specific steps so that you can do it, too.

Add the Base Facebook Pixel

I assume you have the base Facebook pixel code already installed on your website. Just in case, let’s walk through this anyway.

We’re doing this within Google Tag Manager. While there are likely ways to do it elsewhere, the variables and triggers provided by GTM make it easier to execute.

1. Create a tag and name it “Facebook – Base Pixel.”

2. Choose “Custom HTML” as the tag type under Tag Configuration.

3. Paste your base pixel code in its entirety within the HTML text box. Below is an example, but you should use your own code unique to your ad account.

Facebook Pixel GTM

4. Under Triggering, we want our base pixel code to execute on all pages of our website.

Facebook Pixel GTM

Note that I won’t have the events we’re going to create execute on every page (that’s up to you). But the base pixel absolutely should.

Create a Trigger

We want Facebook to fire an event as a visitor progresses on a page related to scroll depth.

1. Create a new trigger in Google Tag Manager and name it “Blog – Scroll to 50%.”

2. Select the “Scroll Depth” trigger type.

3. For vertical scroll depths, use percentages of 50, 60, 70, 80, 90, and 100.

4. Enable this trigger on “Window Load (gtm.load).”

5. Set to page path contains “/blog/”. I’ve decided to focus only on blog posts, but this is again optional. You could skip this step and it would execute on any page.

Facebook Pixel Event Scroll Depth

Create Variable

We need the pixel to record the percentage scroll depth, so we add a variable in Google Tag Manager.

Create a variable called “DLV – gtm.scrollThreshold” using the Data Layer Variable type. Use the data layer variable name “gtm.scrollThreshold.”

Facebook Pixel Event Scroll Depth

Create a Tag

Now, we are going to create a new tag in Google Tag Manager that will reference the trigger and variable we just made.

1. Create a new tag and name it “Facebook – Blog – Scroll 50%-100%.” Names are up to you, of course.

2. Use the Custom HTML tag type.

3. Paste the following code within the HTML text box…

It should look like this…

Facebook Pixel Event Scroll Depth

4. Under Advanced Settings > Tag Sequencing, check the box next to “Fire a tag before Facebook – Blog – Scroll 50%-100% fires.”

5. Select the “Facebook – Base Pixel” tag under setup.

Facebook Pixel Event Scroll Depth

6. Under Triggering, select the trigger that we created previously.

Facebook Pixel Event Scroll Depth

Test Your Event

Let’s make sure this event is working. Within your Events Manager, select your pixel and click on Test Events on the left.

Facebook Pixel GTM

Open a separate window or tab and go to a page of your website where this event should trigger. Scroll through the entirety of that page, and it should appear within this window.

Facebook Pixel Event Scroll Depth

You can also use the Facebook Pixel Helper to test in this same way.

Create Custom Conversions

I’ve created custom conversions for each of the six interval scroll depth events that should be firing.

Facebook Pixel Event Scroll Depth

1. Instead of “All URL Traffic,” select “Blog Tracking” under Custom Events.

2. Click to Add a Rule.

3. Instead of “URL,” select “Event Parameters.”

4. Select “Scroll Depth” as your custom parameter.

5. Enter “50%” next to “Equals.”

6. Name it, select a category (probably “Other”), and set a value (probably leave it blank).

7. Repeat for 60%, 70%, 80%, 90%, and 100%.

You can test these custom conversions just as you tested your event. You should also start to see activity within your list of custom conversions.

Facebook Pixel GTM

Add Columns in Ad Reports

This is information you should monitor within your ad reports, particularly when you drive traffic to blog posts. To do that, click to Customize Columns…

Facebook Pixel GTM

And then find your new Custom Conversions and check the boxes to add them to your report.

Facebook Pixel Event Scroll Depth

Optimize for High-Quality Traffic

If you would normally run campaigns to promote blog posts, let’s do it a little differently.

First, use the Conversions objective rather than Traffic.

Facebook Pixel GTM

When you set Optimization for Ad Delivery at the ad set level, select one of the custom conversions you’ve created.

Facebook Pixel Event Scroll Depth

Feel free to experiment with the different time intervals to see if it impacts your results.

By setting up campaigns this way, Facebook will attempt to show your ads to people most likely to scroll at least 70% on a blog post.

Create Website Custom Audiences

We can now create audiences based on these new events we’ve created…

Facebook Pixel Event Scroll Depth

This lets you focus on targeting those who actually READ your blog post — beyond those pesky Blog Post Title scanners.

Your Turn

This approach has changed my Facebook advertising. It gives me a much clearer view of the quality of visitor I’m driving and allows me to optimize for that type of visitor. This isolated audience also gives me an option for targeting of a small, value-packed group.

Are you doing something similar? What do you think?

Let me know in the comments below!