Hacker News new | ask | show | jobs
by tiuPapa 2283 days ago
Bit of a novice question, but what is the point of a tool like this or Segment? I have a vague idea that they help with gathering your analytics but I am not entirely sure how. Is it like Google Tag Manager that you can use to control multiple analytics script(edit: this is a wrong comparison, I guess it is like Map function where you send all your analytics data and then it splits and send it to all relevant services where you want the data to be displayed)? Sorry for an off-topic and noob question.
1 comments

Not at all, this is a great question and we get it all the time :)

Peter (segment's CEO) had a great answer to this in the thread https://www.quora.com/What-is-the-advantage-of-using-Segment...

TO summarize and highlight the main reasons

1) With GTM you still have to write code. Specifically, you need to figure out how to send events to a destination following their API and JS library. With Segment and Rudder, you just call a couple of generic functions identify, track, page etc.

2) You often want a copy of the events in your own S3 Or Redshift or Snowflake. GTM doesn't help you there but Rudder/Segment can.

3) We have some features like Replay etc which lets you send historic events to a new destination. Say you signed up for a new Analytics tool and want to send all your historic events - Replay helps there

4) Finally, Segment has this product called personas which lets you create audiences (e.g give me all people who have done X but not Y and then send that to MailChimp for emailing). We too are working on it.

Oh interesting. So, how do you figure out where to send which data? Like say, I want to track an event on Google Analytics where I want to see if a new user is being redirected to my site from another site based on the Referer header(no idea if this is a valid use case for GA, its just something I have implemented for one of my projects), how would rudder figure out where to send that data? Does the User have to give a list of events that they want to be sent to GA? Or do I have to specify that I want an event to be sent to GA every time I call Rudder api?
That's right. You would have to specify at a per-event level (by specifying a flat to Rudder JSON) where to forward that event.

We have something called Transformations (user defined functions) by which you can modify the event structure from the Rudder BE. You write the transformation function (currently javascript) on our UI and that gets executed in the backend on your event stream. Using the transformation, you can also control where the event goes to. This is helpful when say you want to change the destination without pushing an update to mobile app

Got it, thanks. Is there any way of transforming old data? Lets say, I want to add a new platform to just store data about clicks, but some of these events stored thru Rudder doesn't have the element id, is there any way I can give these events a default element id before sending them off to the new platform?
Yes, that is the goal of the user transformation. You can add an element_id field while in the event before it is forwarded to destinations.

Would love to understand your use case a bit more.