From what I've read:
1) you could use a windowed store to back your table, and specify retention policy, after which records expire
2) or you could manually push tombstones to the topic used as primary input for your topic, that should cause related entries in the state store to be deleted
3) or you could fork/extend RocksDB config so it includes a TTL (but you'd still have to solve how to prune the changelog topics)
4) or via Kafka Streams you could schedule a periodic job that emits tombstones for entries in your state store older than some TTL
Option 1 is easiest, but requires you to use some form of windowing.
Your use case doesn't quite fit option 1. You could use a session window so that orphaned clicks would be automatically pruned, but you'd need something like Kafka Streams app to trigger issuing a tombstone when, while a session window is open, a click arrives that is over X amount of time since the beginning of that window. I don't see how to do that with KSQL alone. If someone knows a way to do that I'd be interested to learn about it.