Description
Is your feature request related to a problem? Please describe.
1st use case:
I want to be able to disable tracking, but still buffer events in the events store. Our use case is that we want to call an async endpoint before starting tracking to decide, if we are allowed to track or not (not related to the consent cookies, and needs to be an async call).
2nd use case:
Be able to disable tracking, without setting the opt-out cookie.
3rd use case:
Be able to globally filter out unwanted query parameters in all URLs that we send to the collector endpoint, link clicks, custom events, page views etc.
Describe the solution you'd like
Allow us to override/extend Emmiter, EmmiterRequest, EmitterEvent.
We could modify the dictionaries returned from getPayload methods, we could intercept all requests made by the emmiter and we could disable tracking without having to set up the opt-out cookies.
Describe alternatives you've considered
We came up with a workaround where we use our own event store - when tracker calls the async iterator , we intercept it with our async request and then return an empty iterator or the default one, depends if we are allowed to track or not. Thing is that this solution is hacky, and additionally we would need to handle situations where event skips the event store.