@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
117 lines (116 loc) • 4.14 kB
TypeScript
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;
$conversion_technical_id?: string;
$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>;
}