Setting aside specific platforms...

Platforms typically run one of a few way

Generation: When someone falls into a segment. Impression: The actual act of serving. Session: A block of continuous time that defines a user session.

You'll find it much easier on yourself if you are dealing with the same kinds of data when doing comparisons. Otherwise you'll have to do conversions of that data to get it to be roughly in sync.

An example of this is trying to tolerate a session based system, with a generation based one. They may only generate during the first session, and get recorded once, where they could actually have multiple sessions recorded over a given time box.

Once you've identified the above - does the data need to be real time? If so what are the write / read requirements?

Will you be getting bulk feeds for import? What are the import times, etc, Can certain reports only be ran after those processes execute?

Do you need a dashboard? Do you need Data Viz tools? Do you need very granular data as far back as you can go? Is summarizing that data OK after a span of time?

Do you feel you need to run the data collection internally, are 3rd party storage areas on the table?

is the data transaction based? What happens when you roll back the transaction - does the correct data get deleted?

Do you need to filter data based on internal vs external sources?

Answering a lot of those questions would help you identify your specific use cases, and let you make a buy/build decision.