Measuring Internal Search Engagement

So for the last couple of weeks I’ve been working on devising the best means by which to measure Search Engagement.  By our definition, Search Engagement is defined as the rate at which users either (1) search and then click to view a product from search results or (2) immediately add a search results item to their cart.

To measure this, I needed to build two custom Adobe Analytics Components, a Segment and a Calculated Metric.

What NOT to do:

At first (and excited to use the new Sequential/Time-based segment functionality in Segment Builder), I thought it would be best to use a Visit container in my Segment… something along the lines of this:

However, after many, many trials, many more errors, and a considerable amount of time spent on the phone with Adobe Client Care, I realized this was not the best approach.  You see, since I was using an OR condition, the Visit container segments will search through all hits across the site, and if ANY one of those hits matches ANY of your conditions, ALL hits across that visit will be included in the segment.  Confusing, huh?

That said, I needed to find a way to include only those hits that defined my segment.  It became clear that I would need to create a segment using a Hit-based container instead, so I tried this:

The logic here was that all hits should include a referring URL (as long as that hit was not a direct load, i.e., Typed/Bookmarked), so I thought that including Referrer in a hit-based segment along with whatever event I wanted to also include (ProdView or AddtoCart), I would have my bases covered.  Unfortunately, when building out a segment, the Referrer dimension only includes the EXTERNAL referrer…

What TO do:

So now that we know what NOT to do, here’s what I came up with as a solution…

I needed to make sure that we captured all conditions in a single hit, so I decided to collect the referring URL (only if referrer is from within the same domain) in its own eVar.  To do this, I did the following:

  1. Create a Data Element called internalReferrer that uses Custom Script to return the referring URL:

Create data element…

Create a simple JS script to return the value of the referrer ( but only if it’s from an internal URL):

2. Define an eVar to store the value of the Internal Referrer:

 3. Set that eVar as a Global Variable in DTM (Note: This could also be done in a page load rule, but since I may want to use this value elsewhere, I set it globally):

4. Create your hit-based segment in Segment Builder:

5. Create your Calculated Metric using the Metric Builder:


 Note: The above calculated metric simply calculates the number of visits that fall into the segment “Search Engagers” (defined above) divided by the total number of Internal Search visits. 

Approve and Share the new Calculated Metric, and you’re now ready to pull the new metric into your report.  In the example below, I’m measuring Engagement as defined above by term:


I’ll be running some tests over the next couple of days to confirm that the numbers I’m seeing in my reports are accurate, but in the meantime feel free to leave a comment or feedback.

Thanks for stopping by!