Bitmovin 玩家 Conviva 分析集成
这是一个开源项目,可以使用与Bitmovin Player Web SDK的第三方组件(Conviva).
维护和更新
该项目不是定期维护或更新时间表的一部分,每年更新一次,以符合最新产品版本。 关于其他更新请求,请进一步参考下文的指导意见.
对该项目的捐款
作为一个开源项目,我们高兴地接受希望使用该项目的社区的任何和所有改变、更新和修正。 请看 捐款额 详细了解如何捐款.
报告玩家错误
如果您遇到与玩家相关的错误,请通过支持出票系统提高这个.
需要更多帮助吗?
如果您需要帮助更新此项目( 更新、 修改、 修补等) , 且无法因任何原因做出贡献, 请向您的比特movin 帐号团队提出您的请求, 该团队可以讨论您的请求 .
支助和苏丹解放军免责声明
作为一项开源项目,而不是核心产品提供,与该项目有关的任何请求、问题或查询都被排除在客户可能与Bitmovin或其他第三方服务提供者或公司共同参与该项目的任何SLA和支持条款之外。 任何更新都完全由贡献者自行决定.
谢谢你的贡献!
兼容性
这个版本的Conviva分析集成只与玩家版本QQ8.31.x. Conviva SDK的推荐和测试版本为4.5.7. 见 变动情况 详细情况.
开始
安装
利用国家预防机制
安装 npm 包 :
npm i @bitmovin/player-integration-conviva --save-dev
使用自定义构建
通过运行构建 JS 文件 npm run build
发展中国家
- 克隆 Git 仓库
- 安装节点.js
- 安装所需的 npm 包 :
npm install - 运行任务 :
npm run lint输入类型脚本文件以及 ChangeGELOG.mdnpm run build将项目建入dist目录npm run start在浏览器中打开测试页面,自动构建并重新加载已修改的文件npm run format来运行更漂亮和自动格式化的所有代码文件npm run test运行测试
使用量
-
包含
conviva-core-sdk.min.js作为 第一个 hTML 文档中的所有脚本 -
创建实例
ConvivaAnalytics在此之前 电话player.load(...)并传入你的ConvivaCUSTOMER_KEY和可选配置属性 :-
使用国家防范机制导入:
-
导入 Conviva 分析 :
import { ConvivaAnalytics } from '@bitmovin/player-integration-conviva'; -
使用量
const playerConfig = { key: 'YOUR-PLAYER-KEY', // ... }; const player = new Player(document.getElementById('player'), playerConfig); const conviva = new ConvivaAnalytics(player, 'CUSTOMER_KEY', { debugLoggingEnabled: true, // optional gatewayUrl: 'https://youraccount-test.testonly.conviva.com', // optional, TOUCHSTONE_SERVICE_URL for testing deviceCategory: Conviva.Client.DeviceCategory.WEB, // optional, deprecated (Use deviceMetadata.category) (default: WEB) deviceMetadata: { // optional (default: let Conviva backend infer these fields from User Agent string) category: Conviva.Client.DeviceCategory.WEB, // optional (default: WEB) brand: 'Device brand', // optional manufacturer: 'Device Manufacturer', // optional model: 'Device Model', // optional type: Conviva.Client.DeviceType.DESKTOP, // optional version: 'Device version', // optional osName: 'Operating system name', // optional osVersion: 'Operating system version', // optional }, }); var sourceConfig = { // ... }; player.load(sourceConfig).then( function () { console.log('player loaded'); }, function (reason) { console.error('player setup failed', reason); }, );
-
-
使用自定义构建 :
-
包含
bitmovinplayer-analytics-conviva.js之后conviva-core-sdk.min.js在您的 HTML 文档中 -
使用量
var playerConfig = { key: 'YOUR-PLAYER-KEY', // ... }; var container = document.getElementById('player'); var player = new bitmovin.player.Player(container, playerConfig); // A ConvivaAnalytics instance is always tied to one player instance var conviva = new bitmovin.player.analytics.ConvivaAnalytics(player, 'CUSTOMER_KEY', { debugLoggingEnabled: true, // optional gatewayUrl: 'https://youraccount-test.testonly.conviva.com', // optional, TOUCHSTONE_SERVICE_URL for testing deviceCategory: Conviva.Client.DeviceCategory.WEB, // optional, (default: WEB) }); var sourceConfig = { // ... }; player.load(sourceConfig).then( function () { console.log('player loaded'); }, function (reason) { console.error('player setup failed', reason); }, );
-
-
-
通过调用释放实例
conviva.release()在通过调用来毁灭玩家之前player.destroy()
高级使用
虚拟平台追踪
如果您想在未发生实际玩家出错(如:.
服务器关闭连接并返回 net::ERR_EMPTY_RESPONSE 或经过一段时间的拖延)
您可以使用跟踪API来跟踪这些缺陷.
conviva.reportPlaybackDeficiency('Some Error Message', Conviva.Client.ErrorSeverity.FATAL);
见 ConvivaAnalytics.ts 数据分析 参数细节.
Conviva建议在报告一个错误集合和提供用户反馈之前,暂停时间为~10秒左右.
内容元数据处理
如果您想要覆盖一些内容元数据属性,您可以添加以下内容:
let metadataOverrides = {
applicationName: 'App Name',
viewerId: 'uniqueViewerId',
custom: {
customTag: 'customValue',
},
// Find the list here https://pulse.conviva.com/learning-center/content/sensor_developer_center/sensor_integration/javascript/js_quick_integration.htm
// under "Constants for Pre-defined Video and Content Metadata"
additionalStandardTags: {
'c3.cm.channel': 'Test Channel',
'c3.cm.brand': 'Test Brand',
},
encodedFrameRate: 24,
// …
};
// …
// Initialize ConvivaAnalytics
// …
conviva.updateContentMetadata(metadataOverrides);
这些值将在会议结束后清理.
见 ConvivaAnalytics.ts 数据分析 关于更多属性的细节.
如果您需要将 Conviva 管理的元数据与自定义元数据分开配置, 请使用专门的 API :
conviva.updateRequiredContentMetadata({
assetName: 'My Asset',
viewerId: 'uniqueViewerId',
streamType: Conviva.ContentMetadata.StreamType.UNKNOWN,
});
conviva.updateCustomContentMetadata({
custom: {
streamType: 'dash_vod',
customTag: 'customValue',
},
additionalStandardTags: {
'c3.cm.channel': 'Test Channel',
},
});
当您想要发送 Conviva 需要时, 这会有所帮助 streamType 数值(UNKNOWN, (中文(简体) ), VOD, (中文(简体) ), LIVE)并发送任意的习惯 streamType 标记为平行.
连续播放
如果您想要使用同一玩家实例进行多次回放, 请只需加载新源 player.load(…)。 。 。 .
合并将结束活动会议.
player.load({…});
外部 VST 跟踪
如果您的应用程序需要额外的设置步骤, 应当在 VST 跟踪中包含这些步骤, 如 DRM 令牌生成 Player 实例可以初始化,
页:1 ConvivaAnalytics 可以在不附带条件的情况下初始化 Player 举个例子 一旦 Player 实例可以附加.
- 创建
ConvivaAnalytics与您的实例customerKey和配置.
const convivaAnalytics = new ConvivaAnalytics(undefined, customerKey);
- Conviva要求:
assetName设置在会话初始化时。 因此确保您使用元数据覆盖提供 在此之前 启动跟踪会话.
convivaAnalytics.updateRequiredContentMetadata({
assetName: 'Your Asset Name',
});
// Initialize tracking session
convivaAnalytics.initializeSession();
- 曾经
Player实例已准备好附在ConvivaAnalytics举个例子.
// ... Additional setup steps
const player = new bitmovin.player.Player(document.getElementById('player'), getPlayerConfig());
convivaAnalytics.attachPlayer(player);