Is there way of tracking custom parameters passed to the Funnelback search page such that they can be stored and used in analytics. For example - if we passed a userID from an external system into the URL while searching, can this then be used to generate an audit trail of which users are searching and what their search terms are?
The requirement we have is to be able to track what an individual use is searching for given a user ID passed by a decorated URL.
Hi @jon_elwood -
Further detail on the structure of Funnelback’s query logs can be found at:
At first glance, the user_id
field (column 13) seems to be the most appropriate one to use, but this field only supports empty values (captured as -
) or UUIDs (captured as a series of hex codes like 70be4655-8c74-4a97-b9d9-ac6e0af36e04
).
Possible approaches:
- Adding a
pre_data_fetch.groovy
hook script to rewrite the user_id
field from a URL parameter like &user=jsmith
would log as expected, but prevent the analytics database from being generated. Interacting directly with query logs would provide a view of the userId + query data.
- Assigning lookups from UUIDs to usernames
jsmith
>> 70be4655-8c74-4a97-b9d9-ac6e0af36e04
would allow analytics to be generated, but the Funnelback Analytics API does not currently have any calls to interrogate search queries by user IDs. Interacting directly with the analytics database would be the [unsupported] workaround.
- Capture the userId + query detail to a third party system at query-time.
See also:
I’ll bring your request to the attention of the Funnelback Product Manager, though - what you’ve requested does seem like a useful, natural extension to the current logging and Analytics APIs.
Gordon.
If I enable user sessions, and configure an external database to store the sessions - can this be queried to get session information (i.e. current searches for the user?) e.g. SEARCHISTORY table?
Option 3 may be the best option for us at the minute but interested to see if there is a better way of doing this within fb.
thanks
Hi @jon_elwood -
I assume you’re referring to the process described at:
It’s fairly involved, and requires some in-depth knowledge of the database type you’re using, Groovy and Jetty. Once implemented as described, I’d expect that the data being stored in the third-party database would be queryable to produce the view you’re looking for.