如何手动触发 HTML5 IMA SDK 点击事件?

Posted

技术标签:

【中文标题】如何手动触发 HTML5 IMA SDK 点击事件?【英文标题】:How to trigger HTML5 IMA SDK Click event manually? 【发布时间】:2016-04-19 08:46:11 【问题描述】:

我正在使用 html5 IMA SDK,我想以编程方式触发 sdk 的点击事件,或者如果这不可能,我想提取点击 URL .我提供的 clickTrackingElement 是一个锚标记。我想要实现的最终结果是一个能够打开 ima sdk 广告链接的锚标记。该锚标记位于 adContainer 或以下用于设置 ima sdk 广告容器及其备用播放器的 html 中的 mainContainer 之外。

<div id="mainContainer">
    <div id="content">
        <video id="externalAdVideo"></video>
    </div>
    <div id="adContainer"></div>
</div>

我尝试使用以下代码激活 CustomPlayback 和 CustomClickTracking

this.adDisplayContainer = new google.ima.AdDisplayContainer(adContainer, videoElement, clickTrackingElement);

但是当我使用以下代码检查是否启用了任何一个时

console.log('ima.adsManager.isCustomPlaybackUsed: ' + ima.adsManager.isCustomPlaybackUsed());
console.log('ima.adsManager.isCustomClickTrackingUsed: ' + ima.adsManager.isCustomClickTrackingUsed());

他们都返回 false,我错过了什么吗?

【问题讨论】:

【参考方案1】:

看起来你至少可以找到这样的 clickThroughUrl(使用 ima 版本 3.145.0 测试):

ima.adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, function (event) 
    var ad = event.getAd(),
            key = Object.keys(ad)[0] || null;

    if (key && ad[key]) 
        console.log('ClickThroughUrl: ' + ad[key].clickThroughUrl);
    
);

【讨论】:

更优雅的方式:adEvent.getAdData().clickThroughUrl 在版本 3.482.0 中为我工作【参考方案2】:

SDK禁止提取点击后到达网址。它最近混淆了相应的方法。见:

Disappearance of google.ima.Ad.getClickThroughUrl() in HTML5 IMA SDK

【讨论】:

以上是关于如何手动触发 HTML5 IMA SDK 点击事件?的主要内容,如果未能解决你的问题,请参考以下文章

Google IMA HTML5 SDK:获取/设置广告时长

IMA SDK HTML5 视频播放器控件未显示

Adsense 游戏 IMA SDK HTML5 播放错误

如何手动触发点击输入框

如何在移动设备上手动触发 mouseleave 事件

在 Dojo CheckBox 中手动触发点击事件