Data Syncing
Teak can provide raw row level data in CSVs in an S3 bucket in near real time for you to consume into your own analytics pipeline. For more information please contact support.
Row Format
All events provided by the data sync have the following row format, represented as a SQL CREATE TABLE statement:
CREATE TABLE teak_events(
id BIGINT NOT NULL,
event_type VARCHAR(255) NOT NULL,
happened_at DATETIME NOT NULL,
teak_app_id VARCHAR(255) NOT NULL,
platform VARCHAR(255) NOT NULL,
player_id VARCHAR(255),
schedule_id INT,
creative_id INT,
schedule_name VARCHAR(255),
creative_name VARCHAR(255),
platform_id VARCHAR(255),
audience_name VARCHAR(255),
schedule_type VARCHAR(255)
)
- id
-
Each event is issued a unique 64 bit identifier. This identifier may be used to deduplicate and correlate events.
- event_type
-
event_typeindicates what type of event the row represents. Event types will be discussed later in this document. - happened_at
-
happened_atis an ISO8601 timestamp in UTC specifying when the event occurred. - teak_app_id
-
teak_app_idis the App ID of the corresponding game in Teak - platform
-
platformindicates the platform the event occurred on. At time of writing it may be one offb,android,ios, orUNKNOWN. Note that most email events will have a platform ofUNKNOWN. - player_id
-
player_idis the game assigned player id of the player who was involved with this event. Teak makes a best effort to provide player_id for all events, however some purchase events may lack a player_id. - schedule_id
-
If the event involved a notification or email,
schedule_idwill be set to an internal numeric identifier for the respective Schedule in the Teak dashboard. - creative_id
-
If the event involved a notification, email, or link,
creative_idwill be set to an internal numeric identifier for the respective Message or Link in the Teak dashboard. Note that Messages and Links share an id space — you will not have a situation where a Message and Link have the samecreative_id. - schedule_name
-
If the event involved a Schedule,
schedule_namewill be set to the name of the Schedule on the Teak dashboard at the time the event was processed. - creative_name
-
If the event involved a Message or Link,
creative_namewill be set to the name of the Message or Link on the Teak dashboard at the time the event was processed. - platform_id
-
platform_idhas different meanings depending on the event type.- notification_send
-
platform_idwill be the base10 string representation of id - notification_received
-
platform_idwill be the base10 string representation of the id of the corresponding notification_send event - notification_expanded
-
platform_idwill be the base10 string representation of the id of the corresponding notification_send event - notification_click
-
platform_idwill be the base10 string representation of the id of the corresponding notification_send event - click
-
platform_idwill be the base10 string representation of id - launch
-
If the launch is attributed to a
notification_clickorclick,platform_idwill be the base10 string representation of the correspondingnotification_clickorclickevent - email_block
-
platform_idwill be the base10 string representation of the id of the correspondingnotification_sendevent - email_bounce
-
platform_idwill be the base10 string representation of the id of the correspondingnotification_sendevent - email_spam
-
platform_idwill be the base10 string representation of the id of the corresponding notification_send event - email_unsubscribe
-
platform_idwill be the base10 string representation of the id of the correspondingnotification_sendevent - null_send
-
platform_idwill be the base10 string representation ofid - purchase
-
platform_idwill be set to the platform’s id for the purchase. On Android this will be the order id, on iOS this will be the transaction id from the receipt, on Facebook this will be the id of the corresponding purchase object.
- audience_id
-
If the event involved a notification or email sent to a specific audience, this will be the name of the audience in the Teak dashboard at the time the event was processed.
- schedule_type
-
If the event involved a Schedule, this will be set to the targeting type of the schedule, which will be one of
now,later,triggered, orlocal
Event Types
Teak can provide the following events as part of a data sync
- notification_send
-
A
notification_sendevent is generated when Teak makes a request to the underlying notification provider to send a notification (FB, APNS, FCM, ADM, or your email service provider), and the provider indicates the send was successful. - notification_received
-
A
notification_receivedevent is generated when Teak is able to confirm that a notification was received by the player. On iOS and Android this will only occur if notifications have not been blocked by the player and their device is powered on and has an internet connection. For email this will occur when the receiving mailserver confirms receipt. Facebook A2U does not support notification receipts and will not report notification_received events. - notification_expanded
-
A
notification_expandedevent is generated when a player "expands" or otherwise takes a proactive action to view a notification. This event is only generated for iOS rich push notifications when the player expands the notification to view the associated image or video, and on email when a player opens an email. - notification_click
-
A
notification_clickevent is generated when a player clicks on a notification or email and successfully enters the game as a result. The player must get far enough into game loading for Teak to have a player id in order for this event to be tracked. - click
-
A
clickevent is generated when a player clicks on a Link and successfully enters the game as a result. The player must get far enough into game loading for Teak to have a player id in order for this event to be tracked. - launch
-
A
launchevent is generated when a player gets far enough into game loading for Teak to have a player id. - email_block
-
An
email_blockevent is generated when a mailserver informs Teak that an email could temporarily not be delivered due to an issue with the player’s inbox (e.g. their inbox is full). - email_bounce
-
An
email_bounceevent is generated when a mailserver informs Teak that an email permanently could not be delivered due to an issue (e.g. the player’s email address is invalid). - email_unsubscribe
-
An
email_unsubscribeevent is generated when a player unsubscribes from an email either by using the quick list unsubscribe feature or by clicking the unsubscribe link in the email and changing their subscription status. - email_spam
-
An
email_spamevent is generated when a player marks an email as spam. Note that email_spam is not generated if the player’s email provider’s spam filter marks the email as spam. - null_send
-
A
null_sendevent is generated when Teak is performing a warmup of cold email IPs with no warm email IPs to use for excess sends. Instead sends beyond the limits of the warmup schedule will be tracked asnull_sendand not actually sent. - purchase
-
A
purchaseevent is generated when Teak is informed of and confirms the validity of an in-app purchase using real currency.