I'm trying to implement Integration the SponsorPay Offerwall to my iOS application, but I can't understand how determine when user finished watching video and how many virtual coins he gained. In documentation I did not found solution :(
1 回答
当用户完成观看视频时,您在初始化实例时注册的委托将调用SPBrandEngageClient
其方法。brandEngageClient:didChangeStatus:
当用户观看完视频时,您将要查找的是此方法接收到的状态是否为CLOSE_FINISHED
.
如果CLOSE_ABORTED
相反,这意味着您的用户在完全观看视频之前已经关闭了参与度。
SPBrandEngageClientStatus
您可以在SPBrandEngageClient.h
文件中找到的枚举中定义和描述所有状态。它也在Integrating_mBE_SDK.md文档文件中进行了描述,该文件位于“请求和显示约定”部分末尾的表格中。
您的委托必须符合SPBrandEngageClientDelegate
在同一个头文件中定义的协议。
这是实例初始化的SPBrandEngageClient
示例:
_brandEngageClient =
[[SPBrandEngageClient alloc] initWithAppId:@"YOUR_APP_ID"
userId:@"CURRENT_USER_ID"
delegate:self]; // <-- this is your delegate
brandEngageClient:didChangeStatus:
这是您的委托方法的示例:
- (void)brandEngageClient:(SPBrandEngageClient *)brandEngageClient
didChangeStatus:(SPBrandEngageClientStatus)newStatus
{
switch (newStatus) {
case STARTED:
// Your user just started watching the engagement
break;
case CLOSE_FINISHED:
// This is it! Your user finished watching the video
break;
case CLOSE_ABORTED:
// Engagement was cancelled
break;
case ERROR:
// Something prevented the engagement from working correctly
break;
}
}
确定用户获得了多少虚拟币
如果您的brandEngageClient:didChangeStatus:
委托方法收到CLOSE_FINISHED
状态通知,您可以放心地假设您的用户将收到付款。无法立即确定此支出的大小,因为服务器需要一些时间来处理它。当前的 SDK 实现要求您定期轮询服务器,直到您获得的金额大于 0。为此,您可以使用提供的SPVirtualCurrencyServerConnector
类。下面是一些示例代码的使用指南(在本指南中,该类被描述为 SPVirtualCurrencyServerConnect ion,但过程是相同的)。
当硬币确实到达时,您的用户将在屏幕上看到一个简短的通知,其中包含他们所赚取的金额,除非您禁用它,将您的SPBrandEngageClient
实例的shouldShowPayoffNotificationOnVirtualCoinsReceived
属性设置为NO
.