You need to understand what the user wants. For example, if he logged into the site through google at the request of a “motorcycle” or on the site looking for a motorcycle or simply went to the motorcycle section and there are tractors, bicycles, cars and motorcycles on the site, then the “Perhaps you are interested” widget should slip according to some logic, a couple of motorcycles, a menu (which, let's say, standardly displays "AUTO, TRACTOR, CONDUCTED, MOTO") will have to bring MOTO in the first place. In general, I hope the idea is clear. The site must know the user in person.
In addition, if the user enters the site in a month under another browser, perhaps even from another OS, the site should recognize it.
Actually questions:
How to know the user?
If you write to a cookie, then when you change the browser, the desired model will not work. If you remember IP, then they seem to be non-permanent. I understand that if it is possible to realize 100% recognition, it is difficult. What is your option would be the golden mean?If the user came from a search engine (bing, google, yandex, mail, ask, rambler), how can I track it and retrieve the request text?
UPD : I forgot to note that all this should work without registration.