@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
84 lines (76 loc) • 1.92 kB
text/typescript
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 {
$ts?: number;
$type: UserActivityTypeEnum;
$session_status: UserActivitySessionStatusEnum;
$ttl?: number;
$user_agent_id?: string;
$user_account_id?: string;
$email_hash?: EmailHash;
$origin?: UserActivityOrigin;
$location?: UserActivityLocation;
$events: UserActivityEvent[];
// An Activity can contain custom fields
[propsName: string]: any;
}
export interface UserVisitActivity extends UserActivity {
$session_duration?: number;
$topics?: Map<string, Map<string, number>>;
$site_id?: string;
$app_id?: string;
}
export interface UserActivityOrigin {
$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;
[propsName: string]: any;
}
export interface UserActivityLocation {
$source?: LocationSourceEnum;
$country?: string;
$region?: string;
$iso_region?: string;
$city?: string;
$iso_city?: string;
$zip_code?: string;
$latlon: number[];
[propsName: string]: any;
}
export interface UserActivityEvent {
$ts: number;
$event_name: string;
$properties: UserActivityEventProperty;
}
export interface UserActivityEventProperty {
[propsName: string]: any;
}