What is the difference between Self-described event and custom context?


I’m confused about self-described events and custom context. They should be totally different things as for me, but the look like very similar idea.
Custom context, as for me, is additional fields that you want to attach to standart event, you have provide JSON schema, create table in Redshift, and result data will be placed in events table + custom table for additional fields.
Self-described event is not standard event that is coming with JSON schema also, you have also provide custom Redshift table for its values and as fat as I understand it will be still coming with lot standart values, so it will be stored in events table + custom table also.

So looks like the different will be in value of field ‘event’ in events table and how the called from JS tracker, all the rest technical items will be the same. With self-described event you are still extending standard set of fields, but save it with different value in field ‘event’, am I correct?

I have found outdated intro for unstructured events: https://snowplowanalytics.com/blog/2013/05/14/snowplow-unstructured-events-guide/ From very begining it looks like mixpanel free type events, very easy to, but now as far as I understand it can not be used without JSON schema. So unstructured events (self-decribed event) are very similar to custom context now.


Hi @sphinks,

From analysts’ perspective, the main difference between two is that self-describing (unstructured) event has an one-to-one relationship with an actual event (or none-to-one in case of legacy events such as page_view, struct_event) and contexts have many-to-one. In other words, any event can have as many contexts as you think it makes sense, including contexts of the same schema.