Fixing missing click reports in 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.