Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Tracking what users are searching in a content management system
I have a website with a search box.
Running search queries in that search box creates frontend/dynamic search result webpages in which search results based on a search query can appear.
Let's assume that I want to track what people searched in that search box so to better plan which content to develop for possible future readers --- what software could I install to know that?
Can software such as Google Analytics track which frontend/dynamic search result webpages were created for a user (after running a search in that website's internal search box) and if so, how is it actually done from a software development standpoint?
2 answers
Every URL served by your web site is recorded in your web server logs. You could brute-force your way through it by grepping for whatever the prefix is for your search URLs (for example, /search?query=
), but if you're using a tool or package to build and run your web site (the question title refers to a CMS), that tool probably has something built in that's better. Check the documentation for "analytics" or "traffic". You can also use Google Analytics to see which searches people run, if you don't mind relying on an external provider.
All of this is about the URLs the server received. The end of the question asks about tracking the dynamic pages created from those searches, which is a different problem. An out-of-the-box web server doesn't log the traffic it sends back (which would make for very large logs). If you need to know what was returned from a specific search at a specific point in time, you'll need to have your search code log that somehow. How you do that would depend on how exactly you've implemented your search.
0 comment threads
Server-side solution
If you can customize the server-side search functionality, you could add some logging information there. The advantages in this case are:
- store the data in a useful format and avoid parsing general-purpose logs
- you can also store some metadata related to the found results (e.g. a particular search returned only two results)
Client-side solution
If the search operation navigates the user to a URL that contains the search items, Google Analytics should store the different URLs. I am not sure about how is easy to actually grap the useful information from the results though.
You can have more control over what Google Analytics receives through its API (Google Analytics Measurement Protocol). This SO Q&A provides more information.
Personally, I would go with the server-side solution if possible.
0 comment threads