Fixing missing click reports in analytics

Background

This article shows how to troubleshoot missing click reports in search analytics.

Description

The analytics includes a number of reports that are based on click reporting - such as the top result clicks report.

Sometimes these reports will be missing or empty in the analytics. This is normally because there is no click data being recorded by Funnelback. These reports rely on a callback mechanism to log a user’s click on the results. If this mechanism isn’t called then the reports will be missing.

Check the search result URLs

Run a search against the collection that has the missing click reports and examine the URLs for each search result.

Check that search results are using one the the following links to track result clicks. Instead of linking directly to the URL of the search result, each result should call a URL on the Funnelback server which then redirects the user to the result’s actual URL.

  • Modern UI redirect controller: http://example.com/s/redirect?collection=example-collection&url=https%3A%2F%2Fexamplesite.com%2Fpage%2&auth=x%2Fp7ZHFIt%2BoHPJInXNJqzQ&profile=_default&rank=4&query=example

  • Classic UI click.cgi: http://example.com/s/click.cgi?collection=example-collection&url=https%3A%2F%2Fexamplesite.com%2Fpage%2&auth=x%2Fp7ZHFIt%2BoHPJInXNJqzQ&profile=_default&rank=4&query=example

If these links don’t call /s/redirect or click.cgi but go directly to the URL of the search result then clicks will not be logged and the click reporting will be absent.

If the URLs call a different URL on the server (e.g. for an integrated search) then the integration will need to be examined to make sure that the redirect controller or click.cgi is being called in the background.

Resolution

Configure links to use click tracking program in template. Any links to a results should point to the search result variable s.result.clickTrackingUrl.

From Freemarker is this accessed with ${s.result.clickTrackingUrl}. For integrations with search.json and search.xml the clickTrackingUrl element of the result item in the data model should be used when rendering the search results.

For integrations that need to redirect via the calling server (such as a CMS) the ui.modern.click_link value in collection.cfg can be used to set the correct click program.