创建 TJPlacement 实例并使用展示位置名称对其进行初始化。确保代码中的展示位置名称字符串与后台配置中的展示位置名称完全匹配。您还可以实现委托来接收回调(如下所述)。
TJPlacement placement = await TJPlacement.getPlacement();
现在您可以请求内容了。
placement.requestContent();
注意:在请求内容之前,请确保 Tapjoy connect 调用已成功。在收到 onConnectSuccess 回调之前,请勿发出请求。
为了获得最佳用户体验,您应该在向用户显示内容之前提前请求内容。例如,如果展示位置是主菜单上的按钮,您可能希望在应用程序启动时(Tapjoy Connect 调用成功后)为其请求内容。如果您等到最后一刻才请求内容,用户很可能不得不等待内容加载,并观看加载旋转器。对于广告,这会降低用户与广告互动的可能性,因此影响您的收益。
要获取内容请求状态的反馈,请实现以下回调:
TJPlacement placement = await TJPlacement.getPlacement(placementName: 'placementName',
onRequestSuccess: (placement) {},
onRequestFailure: (placement, error) {},
onContentReady: (placement) {},
onContentShow: (placement) {},
onContentDismiss: (placement) {}
);
要实际显示内容,请使用 placement.showContent();
您应该在 showContent() 之前检查以确保内容已准备就绪:
if (await placement.isContentReady()) {
placement.showContent();
}
注意:在显示可能包含视频的展示位置的内容之前,您应该将应用的音频静音,否则视频的音频和应用的音频可能会发生冲突。
通常,最好等到 onContentReady
回调触发后再向用户显示内容。这样,您可以确保内容确实在设备上,并且可以毫不延迟地显示给用户。另一种等效方法是检查 p.isContentReady() 是否为真,如上例所示。
注意:为了确保功能正常,在创建展示位置对象之前,需要先进行 Tapjoy 连接调用并成功。
成功向用户显示展示位置的内容后,您 必须再次请求内容(即再次调用 placement.requestContent();)以使用另一个内容单元“重新加载”展示位置。您不能简单地再次调用 placement.showContent();。如果您尝试在请求内容之前显示内容,则显示内容将失败。
您可以选择告诉 Tapjoy 每个展示位置的“入口点”。有多种预设值可供选择:
TJEntryPoint.entryPointUnknown;
TJEntryPoint.entryPointOther
TJEntryPoint.entryPointMainMenu
TJEntryPoint.entryPointHUD
TJEntryPoint.entryPointExit
TJEntryPoint.entryPointFail
TJEntryPoint.entryPointComplete
TJEntryPoint.entryPointInbox
TJEntryPoint.entryPointInit
TJEntryPoint.entryPointStore
您应该在创建放置对象之后、但在请求内容之前设置入口点:
TJPlacement placement = await TJPlacement.getPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.entryPointMainMenu);
placement.requestContent();