UNPKG

@mediarithmics/plugins-nodejs-sdk

Version:

This is the mediarithmics nodejs to help plugin developers bootstrapping their plugin without having to deal with most of the plugin boilerplate

160 lines (143 loc) 4.08 kB
import { Index } from '../../utils'; import { Customizable } from '../core/common/Customizable'; export type UserActivityTypeEnum = 'SITE_VISIT' | 'APP_VISIT' | 'TOUCH' | 'EMAIL' | 'DISPLAY_AD' | 'RECOMMENDER'; export type UserActivitySessionStatusEnum = 'NO_SESSION' | 'IN_SESSION' | 'CLOSED_SESSION' | 'SESSION_SNAPSHOT'; export type LocationSourceEnum = 'GPS' | 'IP' | 'OTHER'; export interface EmailHash { $hash: string; $email?: string; } export interface UserActivity extends Customizable { $ts?: number; $type: UserActivityTypeEnum; $session_status: UserActivitySessionStatusEnum; $ttl?: number; $user_agent_id?: string; $user_account_id?: string; $compartment_id?: string; $email_hash?: EmailHash; $origin?: UserActivityOrigin; $location?: UserActivityLocation; $events: UserActivityEvent[]; $user_identifiers?: UserIdentifierResource[]; } export interface UserAccountIdentifierResource { $type: 'USER_ACCOUNT'; $user_account_id: string; $compartment_id: string; } export interface UserEmailIdentifierResource { $type: 'USER_EMAIL'; $hash: string; $email?: string; } export interface UserAgentIdentifierResource { $type: 'USER_AGENT'; $user_agent_id: string; } export type UserIdentifierResource = | UserAccountIdentifierResource | UserEmailIdentifierResource | UserAgentIdentifierResource; export interface UserVisitActivity extends UserActivity { $session_duration?: number; $topics?: Map<string, Map<string, number>>; $site_id?: string; $app_id?: string; } export interface UserActivityOrigin extends Customizable { $campaign_id?: number; $campaign_name?: string; $channel?: string; $creative_id?: number; $creative_name?: string; $engagement_content_id?: string; $gclid?: string; $keywords?: string; $log_id?: string; $message_id?: number; $message_technical_name?: string; $referral_path?: string; $social_network?: string; $source?: string; $sub_campaign_id?: number; $sub_campaign_technical_name?: string; $ts?: number; } export interface UserActivityLocation extends Customizable { $source?: LocationSourceEnum; $country?: string; $region?: string; $iso_region?: string; $city?: string; $iso_city?: string; $zip_code?: string; $latlon: number[]; } export interface CampaignTrackingProperties extends Customizable { $campaign_technical_name?: string; $sub_campaign_technical_name?: string; $message_technical_name?: string; $creative_technical_name?: string; $campaign_id?: number; $sub_campaign_id?: number; $message_id?: number; $creative_id?: number; } export interface ConversionProperties extends Customizable { $conversion_id?: string; $goal_id?: number; //@Deprecated $conversion_technical_id?: string; //@Deprecated $goal_technical_id?: string; $conversion_value?: number; $log_id?: string; $conversion_external_id?: string; $goal_technical_name?: string; } export type PlatformEventName = | '$ad_click' | '$ad_view' | '$conversion' | '$category_view' | '$page_view' | '$home_view' | '$item_view' | '$item_list_view' | '$product_view' | '$product_list_view' | '$basket_view' | '$transaction_confirmed' | '$email_view' | '$email_click' | '$email_sent' | '$email_delivered' | '$email_soft_bounce' | '$email_hard_bounce' | '$email_unsubscribe' | '$email_complaint' | '$set_user_profile_properties' | '$content_corrections'; export type EventName = PlatformEventName | string; export type UserActivityEvent = AdClickEvent | AdViewEvent | ConversionEvent | GenericUserActivityEvent; export interface AdClickEvent { $ts: number; $event_name: '$ad_click'; $properties: CampaignTrackingProperties; } export interface AdViewEvent { $ts: number; $event_name: '$ad_view'; $properties: CampaignTrackingProperties; } export interface ConversionEvent { $ts: number; $event_name: '$conversion'; $properties: ConversionProperties; } export interface GenericUserActivityEvent { $ts: number; $event_name: EventName; $properties: Index<unknown>; }