@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
text/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;
//@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>;
}