Create a Meta Custom Event That Combines Time Spent and Scroll Depth

Quality traffic with Facebook ads is the Holy Grail. I’m not going to go into it here, but Meta’s ignorance of quality traffic activity is maddening. But I have a solution for you: A custom event that combines time spent and scroll depth.

I actually wrote about this three years ago, but hoo boy. I seriously overcomplicated that tutorial. We can do this in far fewer steps.

While there are likely manual solutions and other tools that help you accomplish something similar, I’m using Google Tag Manager to manage my pixel. This post assumes that you are doing the same.

After this tutorial, we’ll talk about what you can actually do with this once you have it set up.

Let’s go…

First, Do This…

As mentioned, this post assumes you are using Google Tag Manager to manage your pixel. I assume that you already have a tag created for the base pixel code. I also assume that you’ve already created tags for both the 60-second view and 70% scroll events.

If you haven’t done these things yet, you’re in luck. I have some rather simple instructions below. Read them first.

  1. Create a Meta Pixel Event that Fires After Viewing a Page for 60 Seconds
  2. Create a Meta Pixel Event that Fires After Scrolling 70% Down a Page

Create a Quality Visitor Event

If you’ve already completed the steps above, the most difficult tasks are finished. The rest is easy.

Create a tag in Google Tag Manager. Once again, we’ll use the Custom HTML tag type.

Add the following code:

fbq('track','Quality Traffic');

We could add parameters, but we’re not going to bother. We’re keeping it simple.

Make sure to turn on Tag Sequencing so that the base pixel code tag fires first.

Now click to configure your trigger and create a new trigger. We’re going to use the Trigger Group trigger type.

You’ll want to configure your trigger so that requires both the 60-second event and the 70% scroll event to fire prior to this event firing.

The final product looks like this…

You may want to test it using the Preview tool in Google Tag Manager. Otherwise, publish it and you’re ready to go.

Create a Custom Conversion

We’ve discussed this in the other two blog posts, but there’s a bug that doesn’t allow you to add columns to your Ads Manager for all custom events. The easy solution is to create a custom conversion that maps to that custom event.

The way I do it so that it includes all pages where this event is fired looks like this…

If you can, add it as one of your eight ranked events in Aggregated Event Measurement.

I consider this event pretty important, so I rank it after Complete Registration.

Use for Reporting

I add the Quality Visitor event along with the Scroll and Time on Page events as columns to my Ads Manager. This is a really good way to measure the quality of your traffic.

Compare these numbers to your link clicks, outbound clicks, and landing page views.

Also note that I compared attribution to isolate 1-day click. Otherwise, these numbers include events fired for up to seven days after clicking or one day after viewing.

In the example above, we have 182 1-day click Quality Visitors compared to 801 landing page views (23%). Considering my Quality Visitor requires a 2-minute visit, that feels pretty solid.

This would be something to look at very closely if you ever optimize for link clicks or landing page views because the quality is often low.


If you ever run ads to promote blog posts, you should optimize for this event. While it would be nice if Facebook had a “Quality Traffic” optimization option built-in, this still can’t be worse than optimizing for link clicks or landing page views.

To do that, create an Engagement campaign.

Select “Website” as your conversion location within the ad set.

And then select “Maximum number of conversions” as your Performance Goal and then your pixel and the Quality Visitor conversion event.

I’m actually running a split test right now to compare the results between optimizing for Quality Visitor or landing page views. I admit I don’t understand why I hadn’t done that before.


If you run any remarketing ads, one group of people to consider targeting would be those who are most engaged. Those who trigger the Quality Visitor event would be a solid differentiator within your total website visitors pool.

Your audience would look like this…

Whether you refine the audience by page or alter the time window is up to you.

Watch Video

I recorded a quick video on this, too. Check it out…

Your Turn

Do you use custom events in this way? Are there any others that you create?

Let me know in the comments below!