UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

304 lines (269 loc) • 8.4 kB
type ValueOf<T> = T[keyof T]; export const LEGACY_EVENTS = { CHANNEL_ITEM_PLAY_WAS_TRIGGERED: "play", HOME_SCREEN_VIEWED: "screen_view", ITEM_NOT_AVAILABLE: "Item Not Available", LAUNCH_APP: "launch_app", PLAY_VOD_ITEM: "play", PROGRAM_ITEM_PLAY_WAS_TRIGGERED: "play", TAP_NAVBAR_ICON: "tap_menu", TAP_SIDE_MENU: "tap_menu", VOD_ITEM_PLAY_WAS_TRIGGERED: "play", }; export const SCREEN_VIEW_EVENTS = { SCREEN_VIEW: "screen_view", TIME_ON_SCREEN: "time_on_screen", }; export const TAPPING_EVENTS = { TAP_CELL: "tap_cell", TAP_MENU: "tap_menu", TAP_NAVBAR_BACK_BUTTON: "tap_navbar_back_button", }; export const SEARCH_EVENTS = { SEARCH_EXECUTED: "search_executed", SEARCH_CANCELED: "search_canceled", }; export const SHARE_EVENTS = { SHARE_INITIATED: "share_initiated", SHARE_SUCCESS: "share_success", }; export const ANALYTICS_CORE_EVENTS = { ...LEGACY_EVENTS, ...SCREEN_VIEW_EVENTS, ...TAPPING_EVENTS, ...SEARCH_EVENTS, ...SHARE_EVENTS, }; export const WEBVIEW_EVENTS = { WEBVIEW_SESSION_START: "web_view_session_started", WEBVIEW_SESSION_CLOSED: "web_view_session_closed", }; export const PURCHASE_EVENTS = { PURCHASE_TRIGGERED: "purchase_triggered", PURCHASE_SUCCESS: "purchase_success", PURCHASE_CANCELED: "purchase_canceled", PURCHASE_FAILED: "purchase_failed", }; export const APPLICATION_EVENTS = { APPLICATION_VERSION: "application_version", APPLICATION_NAME: "application_name", }; /** * These are the general parameters that are sent with every analytics event as per the doc below * https://docs.google.com/spreadsheets/d/1E3uY1ImV3vPOiZTaGH8YYD3TJkk9VuFycY7rxxGvoLA/edit#gid=1382761869&range=A2 * Android SDK implementation * https://github.com/applicaster/applicaster-android-sdk/blob/dev/src/main/java/com/applicaster/analytics/Utility.kt */ export const GENERAL_PARAMETERS = { BUILD_NUMBER_KEY: "build_number", BUNDLE_ID_KEY: "bundle_id", QUICKBRICK_VERSION_KEY: "quickbrick_version", LAYOUT_ID_KEY: "layout_id", SDK_VERSION_KEY: "sdk_version", UUID_KEY: "uuid", VERSION_KEY: "version", ZAPP_PLATFORM: "zapp_platform", } as const; export type GenralEventKeys = ValueOf<typeof GENERAL_PARAMETERS>; export type GeneralParameters = { [K in GenralEventKeys]: string; } & { build_number: number }; export const ANALYTICS_ENTRY_EVENTS = { ITEM_TYPE: "item_type", ITEM_TITLE: "item_name", ITEM_ID: "item_id", ITEM_INDEX: "item_number", ITEM_TIME_PLAYED: "item_total_time_played", ITEM_PLAY_COMPLETED: "completed", ITEM_CUSTOM_PROPERTY: "custom_property", }; export const ANALYTICS_COMPONENT_EVENTS = { COMPONENT_ID: "component_id", COMPONENT_TYPE: "component_type", CELL_STYLE: "cell_style", HEADER_TITLE: "header_name", COMPONENT_SOURCE: "component_source", }; // ---------------- EVENTS --------------------- export const AD_EVENT = { ad_break_start: "player_ad_break_start", ad_break_completed: "player_ad_break_complete", ad_start: "player_ad_start", ad_skip: "player_ad_skip", ad_complete: "player_ad_complete", ad_error: "player_ad_error", ad_request: "player_ad_request", ad_clicked: "player_ad_clicked", ad_tapped: "player_ad_tapped", } as const; export const GENERAL_EVENT = { player_presented: "player_presented", player_closed: "player_closed", session_end: "player_session_end", session_start: "player_session_start", } as const; export const DOWNLOADS_EVENTS = { download_start: "download_started", download_success: "download_succeeded", download_error: "download_error", download_delete: "download_deleted", }; export const PLAYBACK_EVENT = { play: "player_play", pause: "player_pause", complete: "player_complete", error: "player_error", buffer_start: "player_buffer_start", buffer_complete: "player_buffer_complete", seek_start: "player_seek_start", seek_complete: "player_seek_complete", stop: "player_stop", next: "player_next", previous: "player_previous", load_video: "player_loaded_video", } as const; export const MISC_EVENT = { onPlayerCanPlay: "onPlayerCanPlay", onPlayerCanPlayThrough: "onPlayerCanPlayThrough", onPlayerDestroy: "onPlayerDestroy", onPlayerDurationChange: "onPlayerDurationChange", onPlayerEnded: "onPlayerEnded", onPlayerError: "onPlayerError", onPlayerLoadedData: "onPlayerLoadedData", onPlayerLoadedMetaData: "onPlayerLoadedMetaData", onPlayerLoadStart: "onPlayerLoadStart", onPlayerPause: "onPlayerPause", onPlayerPlay: "onPlayerPlay", onPlayerPlaying: "onPlayerPlaying", onPlayerPresentationModeChange: "onPlayerPresentationModeChange", onPlayerProgress: "onPlayerProgress", onPlayerRateChange: "onPlayerRateChange", onPlayerReadyStateChange: "onPlayerReadyStateChange", onPlayerResize: "onPlayerResize", onPlayerSeeked: "onPlayerSeeked", onPlayerSeeking: "onPlayerSeeking", onPlayerSourceChange: "onPlayerSourceChange", onPlayerTimeUpdate: "onPlayerTimeUpdate", onPlayerVolumeChange: "onPlayerVolumeChange", onPlayerWaiting: "onPlayerWaiting", } as const; export const QOS_EVENT = { bitrate_changed: "Player: Bitrate Changed", } as const; export const CHROMECAST_EVENTS = { cast_started: "cast_stream_started", cast_ended: "cast_stream_ended", } as const; // ---------------- EVENT MAPS --------------------- export const EVENT_TYPES = { ad: AD_EVENT, general: GENERAL_EVENT, misc: MISC_EVENT, playback: PLAYBACK_EVENT, qos: QOS_EVENT, chromecast: CHROMECAST_EVENTS, }; // ---------------- EVENT PAYLOADS --------------------- export const AD_PAYLOAD = { ad_duration: "Ad Duration", ad_id: "Ad Id", ad_type: "Ad Type", advertiser: "Ad Advertiser", campaign: "Ad Campaign", creative_url: "Ad Creative Url", creative: "Ad Creative Id", name: "Ad Name", placement: "Ad Placement", site: "Ad Site", system: "Ad System", } as const; export const AD_BREAK_PAYLOAD = { max_duration: "Ad Break Max Duration", position: "Ad Position", start_time: "Ad Break Start Time", total_ads: "Ad Break Total Ads", } as const; export const AUDIO_PAYLOAD = { album: "Audio Album", artist: "Audio Artist", author: "Audio Author", label: "Audio Label", publisher: "Audio Publisher", station: "Audio Station", } as const; export const GENERAL_PAYLOAD = { build_number: "App Build Number", bundle_id: "App Bundle Id", layout_id: "App Layout Id", quickbrick_version: "App Quick Brick Versioin", sdk_version: "App SDK Version", uuid: "App UUID", version: "App Version", } as const; export const MEDIA_PAYLOAD = { duration: "Media Duration", media_id: "Media Id", media_type: "Media Type", name: "Media Name", player_type: "Media Player Type", stream_type: "Media Stream Type", } as const; export const VIDEO_PAYLOAD = { genre: "Video Genre", network: "Video Network", rating: "Video Rating", season_name: "Video Season", show_name: "Video Name", show_type: "Video Type", stream_format: "Video Stream Format", } as const; export const QOS_PAYLOAD = { bitrate: "Media Bitrate", dropped_frames: "Media Dropped Frames", fps: "Media Frames Per Second", startup_time: "Media Startup Time", } as const; export const PLAYBACK_PAYLOAD = { current_position: "Current Position", } as const; export const ADD_PAYLOAD = { ad_break_dropped: "Ad Break Dropped", ad_num: "Ad number", error: "Error Description", player_state: "Player State", position: "Position", resumed: "Resumed Playback", start_time: "Start Time", timestamp: "Timestamp", }; export const MISC_PAYLOAD = { event_name: "Event Name", event_type: "Event Type", }; // ---------------- EVENT PAYLOAD MAPS --------------------- // TODO: Do all events have GENERAL_PAYLOAD data? This data is coming from native export const PAYLOAD_TYPES = { ad: [ GENERAL_PAYLOAD, AD_PAYLOAD, MEDIA_PAYLOAD, VIDEO_PAYLOAD, AUDIO_PAYLOAD, ], general: [GENERAL_PAYLOAD, MEDIA_PAYLOAD, VIDEO_PAYLOAD, AUDIO_PAYLOAD], misc: [MISC_PAYLOAD], playback: [GENERAL_PAYLOAD, MEDIA_PAYLOAD, VIDEO_PAYLOAD, AUDIO_PAYLOAD], qos: [ GENERAL_PAYLOAD, MEDIA_PAYLOAD, VIDEO_PAYLOAD, AUDIO_PAYLOAD, QOS_PAYLOAD, ], }; export const PLAYER_DISPLAY_STATES = { docked: "partial", // TODO: is docked partial? fullScreen: "full_screen", inline: "partial", // TODO: is inline partial? isModal: "pip", // TODO: is modal pip? } as const;