自己google翻译稍微整理了下,自用。

window.TJ_API

该文档记录了与Tapjoy产品系列进行第三方可玩内容集成的标准Javascript API。
该API构成了Tapjoy广告的网络视图与作为该广告一部分运行的任何第三方Javascript之间的正式交流渠道。
Tapjoy已在可播放单元的父窗口的TJ_API变量中提供了此API。

window.TJ_API.adInfo;

类型: {reward:string,currencyName:string} || null
从Tapjoy向第三方提供的有关正在投放的广告的其他数据。 保证包含的数据是静态的,但可以为null。

window.TJ_API.adInfo.reward

类型: string
完成可播放广告的目标后,将奖励用户的游戏内货币金额。

window.TJ_API.adInfo.currencyName

类型: string
游戏中货币的显示名称,用于衡量用户奖励。

例子:

if (window.TJ_API) {
let adInfo = window.TJ_API.adInfo;
text = You’ve won ${adInfo.reward} ${adInfo.currencyName}!
}

window.TJ_API.directives

类型: Object
赋予第三者内容的指令,用于配置支持的功能。 确保所包含的数据是静态的,并且在初始化时将可用于设备,以确保为设备提供最大的使用时间。

window.TJ_API.directives.showEndCard

类型: Boolean
如果为true,则表示可玩单元负责显示结束卡。 如果为假,则播放器不应显示自己的结束卡。 例如,此信息可用于驱动游戏和Tapjoy结束卡之间的平滑过渡。

例子:

if (gameOver) {
// Signal to Tapjoy that the gameplay is finished.
window.TJ_API && window.TJ_API.gameplayFinished();
if (window.TJ_API && window.TJ_API.directives.showEndCard) {
// render end card
}
else { / prepare for Tapjoy endcard / }
}

API Functions

window.TJ_API.setPlayableBuild(buildID)

传达此可玩版本的特定构建/版本/发行版的ID。
参数

参数 类型 说明
buildID String 随播放器的版本而异的唯一标识符。

使用
在播放器初始化时被调用; 如果用户在某些可播放版本上遇到问题,我们将使用此信息进行调试。
您可以使用自己的命名约定,只要保证每个单元以及同一单元的每个版本都有唯一的构建标识符即可。
(window.TJ_API && window.TJ_API.setPlayableBuild( “abc-123 v4.5” ));

setPlayableAPI(interface)

定义由Tapjoy确认并由内容提供商可选地实施的一组回调,从而允许Tapjoy的广告客户端挂接到并控制第三方内容的行为。
参数

参数 类型 说明
interface Object Tapjoy可以识别此对象上的特定功能,但不能保证会调用它们。

interface.skipAd()
跳过可播放内容的其余部分,直至其内部结束卡或任何内部机制标志着可播放体验的结束。 提供此功能可以使Tapjoy在我们的插页式广告供应中使用可播放的内容,而 objectiveComplete%20)是由其调用暗示的。
使用
在用户参与开始之前,在播放器初始化时进行设置。
(window.TJ_API &&window.TJ_API.setPlayableAPI({
skipAd: function() { / go to the end card / }
}));
有关如何在现实生活中实现“ skipAd”的更多详细信息,请查看此示例

window.TJ_API.error(cause)

传达在播放器使用期内发生的致命错误,即“致命”错误,该错误会破坏用户的体验或使广告无法使用。
只有第一个此类信号会产生作用,并且其使用将触发广告体验的结束
参数

参数 类型 说明
cause String 有关错误原因的任何可用信息。

使用
(window.TJ_API &&
window.TJ_API.error( “Failed to download important assets” ));

window.TJ_API.click()

传达用户已回答号召性用语(CTA)并终止可播放单元的信息。
这样,它的出现意味着:

  • 游戏目标已经完成,并且
  • 游戏已经完成。

只有此类的第一个信号才会起作用。
使用
将其与表明用户已回答号召性用语的任何事件挂钩。 此CTA事件的确切行为由Tapjoy广告设置定义,但始终会导致可播放单元的结尾。
if (userAnsweredCTA) window.TJ_API && window.TJ_API.click();
有关如何将其与其他生命周期事件结合使用的更多详细信息,请参见示例部分。

window.TJ_API.objectiveComplete()

以前的“ playableFinished”,接口将继续使用,但应继续使用objectiveComplete。
传达可玩对象的主要目标已经完成,但不一定玩法已经完成:用户可以继续与内容互动。 只有此类的第一个信号才会起作用。
用法
将其挂钩到指示可玩对象的主要目标已经完成的任何动作或事件。 例如,当出现内置端卡时,经过一定时间后,或者当用户分数达到预定义的总计时,您可以选择使用它。
if (userReached1000Points) {
window.TJ_API && window.TJ_API.objectiveComplete();
}
有关如何将其与其他生命周期事件结合使用的更多详细信息,请参见示例部分。

window.TJ_API.gameplayFinished()

交流可玩游戏的游戏阶段结束,并且用户可能不再参与可玩内容。
用法

我们可以将可玩单元归纳为两个不同的阶段:“游戏性”和“结束卡”; 是时候过渡到结束卡了,游戏结束。
对于将显示Tapjoy结束卡的可玩游戏(请参阅指令#showEndCard),必须发出“gameplayFinished”信号,以指示应显示结束卡。
if (gameIsOver) {
window.TJ_API && window.TJ_API.gameplayFinished();
}

例子

setPlayableAPI#skipAd

if (window.TJ_API) {
var AdAPI = {
skipAd: function () {
try {
// Save the configured delay for automatically showing the endcard
// if the user has been idle long enough.
var endcardOnIdleDelay = AwesomeConfig.endcardOnIdleDelay;
// Skip to the endcard by modifying the value being used by some
// background countdown process.
AwesomeConfig.endcardOnIdleDelay = 200;
window.requestAnimationFrame(function () {
// Restore the original configured value: we were never even here….
AwesomeConfig.endcardOnIdleDelay = endcardOnIdleDelay;
});
// Log the event, if we care.
AwesomeAnalytics.logAwesomeEvent(“ad_skipped”);
} catch (e) {
console.warn(“Could not skip ad! | “ + e);
}
}
};
// Give the skipAd function to Tapjoy if we can.
window.TJ_API.setPlayableAPI
? window.TJ_API.setPlayableAPI(AdAPI)
: // This scenario shouldn’t happen in real mobile ads, but if you’re previewing
// this playable in, say, a browser, this little hack let’s you test out
// your implementation of skipAd by pressing the key.
(window.onkeyup = function (keyEvent) {
“Escape” === keyEvent.code && AdAPI.skipAd();
});
}

API usage scenarios

图1.内部端卡的广告体验

图2.游戏中的广告体验呼吁采取行动

图3.用户不参与广告的广告体验


在此示例中,我们不希望发出“ gameplayFinished”)信号,因为“click”)会触发可玩单元的结束; 在这种情况下,暗示游戏结论。

图4.用户完成端卡号召性用语的广告体验

在此示例中,完成目标的用户是触发端卡出现的原因。 我们希望objectiveComplete“ gameplayFinished”)会依次发出信号。

图5.支持Tapjoy端卡的广告体验

支持Tapjoy显示结束卡的可玩游戏应检查指令#showEndCard以查看是否应显示结束卡。
游戏完成“ gameplayFinished”)生命周期事件将向Tapjoy发出信号以显示其结束卡。

FAQ

ObjectiveComplete和gameplayFinished有什么区别?
这两个事件是相关的,但代表的是根本不同的事物。 考虑一个代表广告实际级别的可玩单元:广告商可能认为“足够好”,以便用户累积一定数量的点数,但只能在级别结束时过渡到结束卡,从而允许 用户继续玩到最后。 在这种情况下,“完成目标”将达到一定的分数,而“完成游戏性”将达到该水平的终点。
或者,广告客户可能认为完成游戏应该是完成目标的主要方式,因此在这种情况下,objectComplete和gameplayFinished由同一游戏事件触发。 这两个序列都是有效的,并且可以像这样可视化: