Setting aside specific platforms...<p>Platforms typically run one of a few way<p>Generation:  When someone falls into a segment.
Impression:  The actual act of serving.
Session:  A block of continuous time that defines a user session.<p>You&#x27;ll find it much easier on yourself if you are dealing with the same kinds of data when doing comparisons.  Otherwise you&#x27;ll have to do conversions of that data to get it to be roughly in sync.<p>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.<p>Once you&#x27;ve identified the above - does the data need to be real time?  If so what are the write &#x2F; read requirements?<p>Will you be getting bulk feeds for import?  What are the import times, etc, Can certain reports only be ran after those processes execute?<p>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?<p>Do you feel you need to run the data collection internally, are 3rd party storage areas on the table?<p>is the data transaction based?  What happens when you roll back the transaction - does the correct data get deleted?<p>Do you need to filter data based on internal vs external sources?<p>Answering a lot of those questions would help you identify your specific use cases, and let you make a buy&#x2F;build decision.