开发人员常见问题

本页是开发人员常见问题解答媒体分析.你可能还会对媒体分析用户常见问题

如何为Youtube视频启用视频分析?

你需要加上&enablejsapi = 1转到Youtube网址:阅读更多关于设置Youtube分析

如何为Vimeo视频启用视频分析?

如果您使用Vimeo视频将默认跟踪< iframe >嵌入代码:了解更多关于设置Vimeo分析

如何为SoundCloud启用音频分析?

默认情况下,SoundCloud将被跟踪< iframe >嵌入代码。

我如何启用HTML5视频分析,和/或HTML5音频分析?

HTML5视频和音频将被默认跟踪,为您的HTML5提供广泛的分析报告< >视频而且<音频>元素。了解更多HTML5视频分析而且HTML5音频分析

我有一个单页网站或web应用程序,我如何重新扫描DOM,以找到在初始页面加载后添加的新媒体,例如通过Ajax / XHR?

您可以像这样重新扫描整个文档以寻找新媒体:

_paq.push ([' MediaAnalytics:: scanForMedia ']);

如果你只更新了网页的部分内容,你可以通过传递一个DOM元素作为第二个参数,在该区域搜索新添加的视频和音频:

var updatedElement = document.getElementById('justUpdatedElement');_paq.push(['MediaAnalytics::scanForMedia', updatedElement]);

作为一个开发人员,我想看到更多关于日志数据的细节,这是可能的吗?

是的,您可以通过调用以下方法启用调试模式:

_paq.push ([' MediaAnalytics:: enableDebugMode ']);

调用此方法将开始将所有跟踪请求和更多信息记录到浏览器的开发人员控制台。

当媒体播放时,是否可以改变ping间隔?

是的,可以通过调用该方法来实现setPingInterval.缺省情况下,每5秒发送一次更新。更频繁地发送ping可能有助于获得更准确的统计信息,更低频率地发送ping可能有助于减少服务器必须处理的通信量。

var intervalInSeconds = 2;_paq.push(['MediaAnalytics::setPingInterval', intervalInSeconds]);

确保尽可能早地调用该方法,例如刚调用完_paq.push(['setSiteId', 'X']);

当使用多个Matomo(以前是Piwik) JavaScript跟踪器时,我如何设置媒体分析?

Matomo可以让您跟踪一个网站到不同的Matomo安装或进入不同的Matomo网站。了解更多关于使用JavaScript跟踪指南中的多个Matomo跟踪器

如果你用的是普通的_paq.push跟踪方法,当你创建更多的跟踪器时,一切都会开箱即用_paq.push(['addTracker', url, idsite]);

使用_paq.push当你想要跟踪相同的数据到不同的Matomo安装或不同的Matomo网站时,用于多个跟踪器是一个很好的和简单的方法。

//配置第一个跟踪器_paq。push ([' setTrackerUrl ', ' https://example.com/matomo.php ']);_paq.push(['setSiteId', 1]); // configuration of second tracker _paq.push(['addTracker', 'https://example.com/matomo.php', 2]);

如果你正在使用Matomo跟踪实例,因为你想不同地配置每个跟踪实例,并跟踪不同的数据到每个Matomo,你需要手动设置跟踪实例:

窗口。matomoAsyncInit = function(){//从Matomo 2.17.1开始。在2.17.1之前,您需要定义一个方法// '窗口。matomoMediaAnalyticsAsyncInit` instead of `window.matomoAsyncInit`. var matomoTracker1 = Matomo.getTracker('https://example.com/matomo.php', 1); var matomoTracker2 = Matomo.getTracker('https://example.com/matomo.php', 2); var matomoTracker3 = Matomo.getTracker('https://example.com/matomo.php', 3); Matomo.MediaAnalytics.setMatomoTrackers([matomoTracker1, matomoTracker2, matomoTracker3]); // Media Analytics tracking is enabled by default, you can customize the tracking like this: matomoTracker2.MediaAnalytics.disableTrackProgress(); matomoTracker3.MediaAnalytics.disableTrackEvents(); }

在加载Matomo跟踪器文件之前定义这些方法非常重要。否则,你matomoAsyncInitmatomoMediaAnalyticsAsyncInit方法永远不会被调用。

有没有可能不使用“paq。”方法,而不是直接调用MediaAnalytics跟踪方法?

是的。要初始化Media跟踪器,需要定义一个回调方法window.matomoMediaAnalyticsAsyncInit它将在媒体跟踪器初始化后立即执行。一旦调用这个回调函数,您就可以确定Matomo。MediaAnalytics对象的定义。

matomo.js跟踪器我们区分两种方法:

  • 调用一个跟踪器实例方法只影响特定的跟踪器实例。在文档中,当方法名包含单个点().例如MediaAnalytics.disableTrackEvents指一个跟踪器方法跟踪器,可以被称为tracker.MediaAnalytics.disableTrackEvents ()
  • 调用一个静态方法影响所有创建的跟踪器实例。在文档中,当方法名包含时,可以识别静态方法::.例如MediaAnalytics: removePlayer引用静态方法Matomo.MediaAnalytics.removePlayer ()
window.matomoMediaAnalyticsAsyncInit= function () { // static methods var intervalInSeconds = 2; Matomo.MediaAnalytics.removePlayer('youtube'); Matomo.MediaAnalytics.setPingInterval(intervalInSeconds); // tracker methods var tracker = Matomo.getAsyncTracker(); // get tracker instance if you do not have a reference to the tracker instance yet tracker.MediaAnalytics.disableTrackEvents(); };

我可以只在特定的跟踪器实例上禁用跟踪吗?

是的。静态方法disableMediaAnalytics禁用对所有创建的跟踪器实例的跟踪。然而,跟踪器的方法disableTrackEvents而且disableTrackProgress可用于仅对特定跟踪器实例禁用跟踪,如下所示:

window.matomoMediaAnalyticsAsyncInit= function () { // get tracker instance if you do not have a reference to the tracker instance yet var tracker = Matomo.getAsyncTracker(matomoSiteUrl, piwikSiteId); tracker.MediaAnalytics.disableTrackEvents(); tracker.MediaAnalytics.disableTrackProgress(); };

如何在无法自动检测到标题的情况下定义媒体标题?

在大多数情况下,Matomo将自动检测视频或音频的标题。如果您正在使用旧版本的媒体播放器,或者不允许我们自动检测标题的外来媒体播放器,您可以根据自己的自定义逻辑定义一个回调方法来手动检测视频或音频的标题。

例如,如果你总是在一个页面上只有一个视频,你可以回退使用页面标题作为视频标题:

_paq.push(['MediaAnalytics::setMediaTitleFallback', function (mediaElement) { return document.title; }]);

如果页面上有多个视频,或者希望检测相对于视频或音频元素的标题,则可以基于mediaElement论点:

_paq.push(['MediaAnalytics::setMediaTitleFallback', function (mediaElement) { return $(mediaElement).parent().find('h2').text(); }]);
Baidu