@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
84 lines (83 loc) • 4.51 kB
TypeScript
import { ISwrveCampaign, ISwrveCampaignResourceResponse, ISwrveCondition, ISwrveMessage, ISwrveTrigger, ISwrveAsset, ISwrveBaseMessage } from "./ISwrveCampaign";
import { ICampaignDownloadData, IQACampaignTriggerEvent } from "../Events/EventTypeInterfaces";
import { ICampaignState } from "./ICampaignState";
import { OnPageViewed } from "./Messages/SwrveMessageDisplayManager";
import { AssetManager } from "./AssetManager";
import { OnMessageListener } from "../SwrveSDK";
import { ProfileManager } from "../Profile/ProfileManager";
import { OnButtonClicked, OnBackButtonClicked } from "./Messages/SwrveMessageDisplayManager";
import { IPlatform } from "../utils/platforms/IPlatform";
import { ISwrveInternalConfig } from "../Config/ISwrveInternalConfig";
import { ResourceManager } from "../Resources/ResourceManager";
import { OnEmbeddedMessageListener } from "../Config/ISwrveConfig";
import IDictionary from "../utils/IDictionary";
export declare type OnAssetsLoaded = (error?: Error) => void;
export interface ICampaignRuleStatus {
status: number;
message: string;
}
export interface ICampaignTriggerStatus {
globalStatus: ICampaignRuleStatus;
campaignStatus?: ICampaignRuleStatus;
campaignFailCode: number;
campaigns: IQACampaignTriggerEvent[];
}
export declare class CampaignManager {
profileManager: ProfileManager;
private campaigns;
private campaignState;
private platform;
private readonly messageDisplayManager;
private readonly assetManager;
private onMessageListener;
private onEmbeddedListener;
private _maxMessagesPerSession;
private _minDelay;
private _delayFirstMessage;
private readonly MAX_MESSAGES_PER_SESSION;
private readonly MIN_DELAY;
private readonly DELAY_FIRST_MESSAGE;
private messagesShownCount;
private lastShownMessageTime;
constructor(profileManager: ProfileManager, platform: IPlatform, config?: ISwrveInternalConfig, resourceManager?: ResourceManager, personalizationProperties?: IDictionary<string>);
storeCampaigns(response: ISwrveCampaignResourceResponse, personalizationProperties: IDictionary<string>, onAssetsLoaded: OnAssetsLoaded): void;
refreshAssets(personalizationProperties: IDictionary<string>, onAssetsLoaded: OnAssetsLoaded): void;
resetCampaignState(clearCampaigns?: boolean): void;
loadStoredCampaigns(userId: string): void;
synchronizeCampaignState(): void;
getCampaignIDs(): ICampaignDownloadData[];
getCampaignVariantID(campaign: ISwrveCampaign): number;
getSentPageViewEvents(): number[];
getSentNavigationEvents(): number[];
getCampaignState(campaignId: string): ICampaignState;
onEmbeddedMessage(onEmbeddedMessageListener: OnEmbeddedMessageListener): void;
onMessage(onMessageListener: OnMessageListener): void;
onPageViewed(callback: OnPageViewed): void;
onButtonClicked(callback: OnButtonClicked): void;
onBackButtonClicked(callback: OnBackButtonClicked): void;
showCampaign(campaign: ISwrveCampaign, personalizationProperties?: IDictionary<string>, impressionCallback?: OnMessageListener): boolean;
checkTriggers(triggerName: string, payload: object, impressionCallback: OnMessageListener, qa?: boolean, personalizationProperties?: IDictionary<string>): ICampaignTriggerStatus;
showMessage(message: ISwrveMessage, campaign: ISwrveCampaign, personalizationProperties?: IDictionary<string>): void;
closeMessage(): void;
canTriggerWithPayload(trigger: ISwrveTrigger, payload: any): boolean;
hasFulfilledCondition(condition: ISwrveCondition, payload: any): boolean;
handleCDN(response: ISwrveCampaignResourceResponse): void;
getAssetManager(): AssetManager;
getMessageCenterCampaigns(personalizationProperties?: IDictionary<string>): ISwrveCampaign[];
updateCampaignState(message: ISwrveBaseMessage): void;
markCampaignAsSeen(campaign: ISwrveCampaign): void;
removeMessageCenterCampaign(campaign: ISwrveCampaign): void;
isMessageShowing(): boolean;
private setCampaignStatus;
private applyGlobalRules;
private applyCampaignRules;
private parseGlobalRules;
private handleAssets;
static getAllAssets(campaigns: ReadonlyArray<ISwrveCampaign>, cdn: string, personalizationProperties?: IDictionary<string>): ISwrveAsset[];
private canCampaignRender;
private getNow;
private filterUnsupportedCampaigns;
private hasMultilineTextFeature;
private hasPlainTextButtonFeature;
private hasCopyToClipboardFeature;
}