@bitmovin/player-integration-conviva

中文文档
6.3.0发布于 2026/06/18MITTypeScriptCommonJS零依赖近 30 天下载 2万

Bitmovin 玩家的 Conviva 分析集成

中文使用文档
文档目录11 节
  1. 维护和更新
  2. 对该项目的捐款
  3. 报告玩家错误
  4. 需要更多帮助吗?
  5. 支助和苏丹解放军免责声明
  6. 兼容性
  7. 开始
  8. 安装
  9. 发展中国家
  10. 使用量
  11. 高级使用

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

发展中国家

  1. 克隆 Git 仓库
  2. 安装节点.js
  3. 安装所需的 npm 包 : npm install
  4. 运行任务 :
  • npm run lint 输入类型脚本文件以及 ChangeGELOG.md
  • npm run build 将项目建入 dist 目录
  • npm run start 在浏览器中打开测试页面,自动构建并重新加载已修改的文件
  • npm run format 来运行更漂亮和自动格式化的所有代码文件
  • npm run test 运行测试

使用量

  1. 包含 conviva-core-sdk.min.js 作为 第一个 hTML 文档中的所有脚本

  2. 创建实例 ConvivaAnalytics 在此之前 电话 player.load(...) 并传入你的Conviva CUSTOMER_KEY 和可选配置属性 :

    1. 使用国家防范机制导入:

      1. 导入 Conviva 分析 :

        import { ConvivaAnalytics } from '@bitmovin/player-integration-conviva';
        
      2. 使用量

        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);
          },
        );
        
    2. 使用自定义构建 :

      1. 包含 bitmovinplayer-analytics-conviva.js 之后 conviva-core-sdk.min.js 在您的 HTML 文档中

      2. 使用量

        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);
          },
        );
        
  3. 通过调用释放实例 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 实例可以附加.

  1. 创建 ConvivaAnalytics 与您的实例 customerKey 和配置.
const convivaAnalytics = new ConvivaAnalytics(undefined, customerKey);
  1. Conviva要求: assetName 设置在会话初始化时。 因此确保您使用元数据覆盖提供 在此之前 启动跟踪会话.
convivaAnalytics.updateRequiredContentMetadata({
  assetName: 'Your Asset Name',
});

// Initialize tracking session
convivaAnalytics.initializeSession();
  1. 曾经 Player 实例已准备好附在 ConvivaAnalytics 举个例子.
// ... Additional setup steps

const player = new bitmovin.player.Player(document.getElementById('player'), getPlayerConfig());
convivaAnalytics.attachPlayer(player);

版本与发布记录

@bitmovin/player-integration-conviva 共发布 29 个版本,首次发布于 2019/03/08;过去 12 个月发布了 3 个版本。

版本发布日期距今
6.3.0latest2026/06/184 个月前
6.2.02026/03/187 个月前
6.1.52026/02/258 个月前
6.1.32025/11/061 年前
6.1.22024/12/241.9 年前
6.1.12024/12/191.9 年前

关于 @bitmovin/player-integration-conviva 的常见问题

@bitmovin/player-integration-conviva 是什么?

Bitmovin 玩家的 Conviva 分析集成

如何安装 @bitmovin/player-integration-conviva?

在项目目录运行 npm install @bitmovin/player-integration-conviva,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:bitmovin-player(^8.193.0)、@convivainc/conviva-js-coresdk(^4.7.6)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bitmovin/player-integration-conviva 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bitmovin/player-integration-conviva 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bitmovin/player-integration-conviva 可以商用吗?

@bitmovin/player-integration-conviva 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bitmovin/player-integration-conviva 的下载量有多少?

根据 npm 官方下载统计,@bitmovin/player-integration-conviva 在 2026/10/08 – 2026/11/06 这 30 天内被下载 20,386 次,日均约 680 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bitmovin/player-integration-conviva 还在维护吗?

最新版本 6.3.0 发布于 2026/06/18(4 个月前);至今共发布 29 个版本,其中过去 12 个月发布了 3 个;首次发布于 2019/03/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。