IContentPersonalizationServer
内容个性化服务器接口
方法
setContentEntitlementsHandler()
setContentEntitlementsHandler(contentEntitlementsHandler: IContentEntitlementsHandler):
void
参数
contentEntitlementsHandler
setContentEntitlementsHandlerForComponent()
setContentEntitlementsHandlerForComponent(contentEntitlementsHandler: IContentEntitlementsHandler, component:
IComponentInstance):void
为将以内容权利数据响应命令的特定组件设置处理程序。
参数
contentEntitlementsHandler
用于响应与内容权利相关的命令的处理程序。
component
IComponentInstance
设置处理程序的组件实例。
示例
import {
ContentPersonalizationServer,
CustomerListType,
IContentEntitlementsHandler,
IContentEntitlementsProvider,
ICustomerListEntriesHandler,
...
} from "@amazon-devices/kepler-content-personalization";
...
// 处理程序
const contentEntitlementsHandler: IContentEntitlementsHandler = {
getAllContentEntitlements: (
contentEntitlementsProvider: IContentEntitlementsProvider,
) => {
contentEntitlementsProvider.addContentEntitlementChunk(<ADD ENTITLEMENTS>);
contentEntitlementsProvider.commit();
},
};
...
// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
ContentPersonalizationServer.setContentEntitlementsHandlerForComponent(
contentEntitlementsHandler,
componentInstance,
);
// 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
...
return Promise.resolve();
}
setCustomerListEntriesHandler()
setCustomerListEntriesHandler(customerListEntriesHandler: ICustomerListEntriesHandler):
void
参数
customerListEntriesHandler
setCustomerListEntriesHandlerForComponent()
setCustomerListEntriesHandlerForComponent(customerListEntriesHandler: ICustomerListEntriesHandler, component:
IComponentInstance):void
为将以客户列表条目数据响应命令的特定组件设置处理程序。
参数
customerListEntriesHandler
用于响应与客户列表相关的命令的处理程序。
component
IComponentInstance
设置处理程序的组件实例。
示例
import {
ContentPersonalizationServer,
CustomerListType,
IContentEntitlementsHandler,
IContentEntitlementsProvider,
ICustomerListEntriesHandler,
...
} from "@amazon-devices/kepler-content-personalization";
...
// 处理程序
const customerListEntriesHandler: ICustomerListEntriesHandler = {
getAllCustomerListEntries: (
listType: CustomerListType,
customerListEntriesProvider: ICustomerListEntriesProvider,
) => {
customerListEntriesProvider.addCustomerListChunk(listType, <添加列表条目>);
customerListEntriesProvider.commit();
},
};
...
// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
ContentPersonalizationServer.setCustomerListEntriesHandlerForComponent(
customerListEntriesHandler,
componentInstance,
);
// 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
...
return Promise.resolve();
}
setPlaybackEventsHandler()
setPlaybackEventsHandler(playbackEventsHandler: IPlaybackEventsHandler):
void
参数
playbackEventsHandler
setPlaybackEventsHandlerForComponent()
setPlaybackEventsHandlerForComponent(playbackEventsHandler: IPlaybackEventsHandler, component:
IComponentInstance):void
为将以播放事件数据响应命令的特定组件设置处理程序。
参数
playbackEventsHandler
用于响应与播放事件相关的命令的处理程序。
component
IComponentInstance
设置处理程序的组件实例。
示例
import {
ContentPersonalizationServer,
CustomerListType,
IContentEntitlementsHandler,
IContentEntitlementsProvider,
ICustomerListEntriesHandler,
...
} from "@amazon-devices/kepler-content-personalization";
...
// 处理程序
const playbackEventsHandler: IPlaybackEventsHandler = {
getPlaybackEventsSince: (
sinceTimestamp: Date,
playbackEventsProvider: IPlaybackEventsProvider,
) => {
playbackEventsProvider.addPlaybackEventChunk(<添加播放事件>);
playbackEventsProvider.commit();
},
};
...
// 无头服务
onStart(componentInstance: IComponentInstance): Promise<void> {
ContentPersonalizationServer.setPlaybackEventsHandlerForComponent(
playbackEventsHandler,
componentInstance,
);
// 在此处设置其他处理程序,也可用于`SubscriptionEntitlementServer`
...
return Promise.resolve();
}
reportNewContentInteraction()
reportNewContentInteraction(contentInteraction: IContentInteraction):
void
报告客户与内容(点赞、不喜欢、看过预告片等)进行了交互
参数
contentInteraction
已发生的内容交互。
示例
const contentInteraction : IContentInteraction = new ContentInteractionBuilder()
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
.interactionTimestamp(new Date())
.contentInteractionType(ContentInteractionType.INGRESS)
.profileId(
new ProfileIdBuilder()
.id('myProfileId1')
.idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
.build(),
)
.build();
// 发送事件
ContentPersonalizationServer.reportNewContentInteraction(
contentInteraction,
);
reportNewPlaybackEvent()
reportNewPlaybackEvent(playbackEvent: IPlaybackEvent):
void
报告更新了客户在主动播放期间的播放行为。
参数
playbackEvent
设备上刚发生的播放事件。
示例
const playbackEvent: IPlaybackEvent = new PlaybackEventBuilder()
.playbackPositionMs(0)
.playbackState(PlaybackState.PLAYING)
.durationMs(2000)
.eventTimestamp(new Date())
.profileId(
new ProfileIdBuilder()
.id('myProfileId')
.idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
.build(),
)
...
// 适用于VOD内容
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
...
// 适用于线性内容(首选)
.liveStationId(
new ContentIdBuilder()
.id('station_GVD')
.idNamespace(ContentIdNamespaces.NAMESPACE_GVD)
.build(),
)
...
// 适用于线性内容(或者,使用channelDescriptor)
.channelDescriptor(
new ChannelDescriptorBuilder()
.majorNumber(0)
.minorNumber(1)
.identifier('channelID')
.build(),
)
...
.buildActiveEvent();
// 发送事件
ContentPersonalizationServer.reportNewPlaybackEvent(playbackEvent);
reportRefreshedPlaybackEvents()
reportRefreshedPlaybackEvents():
void
表示可获取有关客户在设备外发生的播放行为的最新内容。
在使用此API之前,需要调用。
reportNewCustomerListEntry()
reportNewCustomerListEntry(listType: CustomerListType, entry: ICustomerListEntry):
void
报告客户已在客户管理列表中插入了新条目。仅用于因客户操作在设备上插入的条目。应在插入时报告。
参数
listType
该条目所插入的客户列表类型。
entry
该条目添加了客户列表。
示例
const customerListEntry: ICustomerListEntry = new CustomerListEntryBuilder()
.addedTimestamp(new Date())
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
.profileId(
new ProfileIdBuilder()
.id('myProfileId1')
.idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
.build(),
)
.build();
// 发送事件
ContentPersonalizationServer.reportNewCustomerListEntry(
CustomerListType.WATCHLIST,
customerListEntry,
);
reportRemovedCustomerListEntry()
reportRemovedCustomerListEntry(listType: CustomerListType, entry: ICustomerListEntry):
void
报告客户已从客户管理列表中移除了一个条目。仅用于因客户操作而从设备上移除的条目。应在移除时报告。
参数
listType
移除该条目的客户列表类型。
entry
已从客户列表中移除该条目。
示例
const customerListEntry: ICustomerListEntry = new CustomerListEntryBuilder()
.addedTimestamp(new Date("2025-03-17T03:24:00"))
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
.profileId(
new ProfileIdBuilder()
.id('myProfileId1')
.idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
.build(),
)
.build();
// 发送事件
ContentPersonalizationServer.reportRemovedCustomerListEntry(
CustomerListType.WATCHLIST,
customerListEntry,
);
reportRefreshedCustomerList()
reportRefreshedCustomerList(listType: CustomerListType):
void
表示因设备外操作导致客户管理列表发生更改,应获取客户管理列表的最新版本。
在使用此API之前,需要调用。
参数
listType
已更改的客户列表类型。
reportNewContentEntitlement()
reportNewContentEntitlement(entitlement: IContentEntitlement):
void
报告客户在其现有内容权利列表中插入了新的个人内容权利。仅用于订阅中尚未包含的权利。仅用于因客户在设备上的操作而插入的权利。应在插入时报告。
参数
entitlement
新权利。
示例
const entitlements: IContentEntitlement = new ContentEntitlementBuilder()
.acquisitionTimestamp(new Date())
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
.entitlementType(EntitlementType.RENTAL)
.expirationTimestamp(new Date("2025-12-17T03:24:00"))
.build();
// 发送事件
ContentPersonalizationServer.reportNewContentEntitlement(entitlements);
reportRemovedContentEntitlement()
reportRemovedContentEntitlement(entitlement: IContentEntitlement):
void
报告客户在其现有内容授权权利中不再拥有个人内容权利。仅用于订阅中未包含的权利。仅用于因设备端操作而不再有效或过期的权利。应在移除时报告。
参数
entitlement
已移除的权利。
示例
const entitlements: IContentEntitlement = new ContentEntitlementBuilder()
.acquisitionTimestamp(new Date("2025-03-17T03:24:00"))
.contentId(
new ContentIdBuilder()
.id('content_CDF_ID')
.idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
.build(),
)
.entitlementType(EntitlementType.RENTAL)
.expirationTimestamp(new Date("2025-12-17T03:24:00"))
.build();
// 发送事件
ContentPersonalizationServer.reportRemovedContentEntitlement(entitlements);
reportRefreshedContentEntitlements()
reportRefreshedContentEntitlements():
void
表示因设备外操作导致单独内容权利发生变化,应获取新的更新内容权利列表。
在使用此API之前,需要调用。
Last updated: 2026年8月2日

