SponsorPay オファーウォールの統合を iOS アプリケーションに実装しようとしていますが、ユーザーがいつビデオの視聴を終了したか、および獲得した仮想コインの数を判断する方法がわかりません。ドキュメントでは解決策が見つかりませんでした:(
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と記述されていますが、プロセスは同じです)。
SPBrandEngageClient
コインが到着すると、インスタンスのshouldShowPayoffNotificationOnVirtualCoinsReceived
プロパティをに設定して無効にしない限り、ユーザーは獲得した金額を示す小さな通知が画面に短時間表示されますNO
。