Segment
Segment is the single platform that collects, translates, and routes your user data to hundreds of analytics & marketing tools with the flip of a switch. By integrating Segment with Cooladata you can track events using the Segment APIs from any source and save them to your Cooladata project, in addition to or instead of using Cooladata’s SDKs or APIs.
Segment integration with Cooladata works via Amazon Kinesis. Integrating Segment with Cooladata allows you to stream event data via Amazon Kinesis in addition to, or instead of using Cooladata’s SDKs or APIs.
Settings up a Segment integration
- Set up an Amazon Kinesis integration, as explained here.
- In your Segment account, set up a new Amazon Kinesis source. You will need the following details:
- AWS User access KEY ID
- AWS Kinesis Stream Regio: use “us-east-1”
- AWS user secret access KEY
- AWS Stream kinesis name
- Click “Activate integration”
For more information on Segment’s integration with Amazon Kinesis see Segment’s documentation.
APIs
Cooladata supports the following Segment APIs:
- Identify
- Track
- Page
- Screen
For more information on the various Segment APIs see Segment’s documentation.
Event structure
Segment events are slightly different from Cooladata events. Segment events use nested JSON, and have different property names than Cooladata. When integration Segment and Cooladata, Cooladata flattens these event Segment property names are mapped to Cooladata properties.
JSON Flattening:
When a Segment event contains a nested JSON, it will be flattened using the standard JSON format. For example:
{a:{b:”value”}}
will be converted to
{a.b:"value"}
Thus, the property name of this key will be “a.b”.
Property Mapping
Segment property names are mapped to Cooladata properties according to the following table. Where more than one Segment property can apply, the priority matches the order in the table.
Segment Property | Cooladata Property |
---|---|
user_id | properties_UserId user_id userId anonymous_id anonymousId |
user_alternative_id | anonymous_id anonymousId |
event_name | event type |
event_server_time_ts | timestamp received_at receivedAt |
event_client_time_ts | sent_at sentAt |
session_ip | context_ip |
session_ip_country | context_locale |
session_app_id | context_app_name |
session_brand | context_device_name |
session_model | context_device_model |
session_os_version | context_os_version |
session_os | context_os_name |
tracker_type | context_library_name |
tracker_version | context_library_version |
utm_campaign | context_campaign_name |
utm_content | context_campaign_content |
utm_medium | context_campaign_medium |
utm_source | context_campaign_source |
utm_term | context_campaign_term |
session_dua | context_userAgent |