Tag Archives: Bounce Rate

How to Identify Those Pesky Bots

Tell me if you’ve heard this one…

You see a major spike in traffic.

You get excited.

You congratulate yourself for putting together such an effective marketing campaign and/or having such a great brand. You feel like the most popular kid in school. There is an extra strut in your step.

Then…

There are no corresponding conversions. Bounce rate is through the roof. All this exciting new incremental traffic is from St. Petersburg, Russia.

You have a bot problem.

Here are some tips on where you can look in your data to confirm:

Data PointWhat to Look For
Operating SystemLinux or "not set"
Browser“not set” or “unknown”
Browser Versionmany versions prior to the most current version
Locationcoming from the same city
ISPcoming from the same ISP
New vs Returningall new users
Pageviews per Visitif almost all the suspect traffic has only 1 pageview per visit and a 100% bounce rate

OR

if almost all the suspect traffic has an inordinately high number of pageviews per visit
Landing Pagethis isn't necessarily an indicator in and of itself, but seeing where this suspect traffic is entering the site can give you some hints

Example: if a lot of the landing pages are a search results page with a keyword of a specific SKU, it’s probably a crawler making a database of products.
Pagesnon-bounced traffic is consistently hitting the same pages in the same sequence
User Agent Stringthis is not available by default in Google Analytics or Adobe Analytics reporting, but you can easily copy to a custom dimension or eVar for further investigation

If it is a bot, you can:

  • use view filters in Google Analytics to exclude it from your reporting view. (This will only exclude it from that date going forward.)
  • adjust your segment definition in Adobe Analytics to exclude it from your virtual report suite. (Depending on the scope of your segment, this may or may not exclude it from that date going forward.)
  • invest in a bot detection tool like White Ops to proactively identify and block bots before they can even muck up your data.

Understanding Time on Page / Time on Site / Bounces in Google Analytics

I have clients who put a lot of focus on time-spent metrics like “time on page” or “average session duration,” and there is a lot of time spent on my part making sure everyone understands how those metrics are counted (and how misleading they can be). It’s a common misconception that there is a countdown timer ticking on each page, and that said counter is only running when someone is actively looking at / scrolling down the page in the active browser tab, and that the counter stops when someone closes the tab or browser.

Sadly, those are completely inaccurate assumptions and often lead people to misinterpret what’s in those reports.  All time-spent metrics are calculated based on timestamps of when packets of data are sent to your reporting tool. The reporting tools have no idea whether or not your users were actively on your site, only that beacons of data are sent. Here’s a good example of why time-spent metrics shouldn’t be blindly trusted:

  • Best case scenario: If you were on Page A at 12:00pm and stayed engaged reading the page for a few minutes and navigated to Page B at 12:02pm, Google Analytics would show that your time on Page A was 2 minutes. Great!
  • More realistic scenario: If you were on Page A at 12:00pm, got distracted and looked at another site in another browser tab for 10 minutes, then had to take a 10 minute phone call, then finally returned and navigated to Page B at 12:20pm, GA would show that your time on Page A was 20 minutes. No it wasn’t, yikes!

Rather than using these types of passive metrics which can be misleading, I recommend using metrics that show users actively engaging: page views per session, scroll event tracking, page depth, etc. But if you do want to continue using the time-spent reports, it’s important to understand exactly what is being calculated and how.

  1. All time spent metrics are simple difference calculations based on timestamps of when hits are sent to GA.
  2. Average Session Duration is the difference between the timestamps of the first and last hits of the session (and that final hit can be either a pageview or an event). If only one hit happened in the session, the average session duration will be 0 since there is no second timestamp to perform the calculation. (Google Help Article)
  3. Average Time on Page is the time difference between subsequent pageviews. The final page (or in cases of single page visits the only page) will have a time on page of 0 because the subsequent timestamp is not there for the calculation.
    • Note that events are not taken into account on time on page calculations.
  4. Bounces are sessions that only trigger one hit, and that hit can be a pageview or an event. If a user only visited one page and incremented 1 single pageview but scrolled down enough to make a scroll event fire, that’s 2 hits and therefore they will not be a bounce. (Google Help Article)
    • Note that GA has an option for “non-interaction events” which were designed to be ignored for the purposes of bounce rate.

I always find it helpful to see detailed examples, so I generated data for a few scenarios to illustrate:

Session 1:
3 Pageviews, 0 Events

Page 1 @ 2:58pm
Page 2 @ 3:00pm
Page 3 @ 3:02pm

  • Avg Session Duration = 4 minutes (3:02pm minus 2:58pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 2 minutes (3:00pm minus 2:58pm)
  • Page 2 Avg Time on Page = 2 minutes (3:02pm minus 3:00pm)
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent timestamp to calculate)

Session 2:
3 Pageviews, 2 Events

Page 1 @ 3:02pm
Page 2 @ 3:03pm
Page 3 @ 3:04pm
Event A @ 3:05pm
Event B @ 3:10pm

  • Avg Session Duration = 8 minutes (3:10pm minus 3:02pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 1 minute (3:03pm minus 3:02pm)
  • Page 2 Avg Time on Page = 1 minute (3:04pm minus 3:03pm)
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 3:
1 Pageview, 1 Event

Page 1 @ 3:10pm
Event A @ 3:12pm

  • Avg Session Duration = 2 minutes (3:12pm minus 3:10pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 4:
1 Pageview, 0 Events

Page 1 @ 3:13pm

  • Avg Session Duration = 0 minutes (there is no subsequent timestamp to calculate)
  • Bounce Rate = 100%
  • Page 1 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Session 5:
2 Pageviews, 1 Event, 1 Pageview

Page 1 @ 3:32pm
Page 2 @ 3:34pm
Event A @ 3:36pm
Page 3 @ 3:38pm

  • Avg Session Duration = 6 minutes (3:38pm minus 3:32pm)
  • Bounce Rate = 0%
  • Page 1 Avg Time on Page = 2 minutes (3:34pm minus 3:32pm)
  • Page 2 Avg Time on Page = 4 minute (3:38pm minus 3:34pm)
    • NOTE: this is ignoring the event and is calculating the time difference from the previous pageview
  • Page 3 Avg Time on Page = 0 minutes (there is no subsequent pageview timestamp to calculate)

Hopefully that clarifies exactly how things are counted, and will empower you to interpret those reports correctly!