SDK /SDK
TJPlacement クラスを使用して広告プレースメントをリクエストする方法について基本の SDK ドキュメントを参照して、プレースメント名が Tapjoy ダッシュボードで設定されている名前と一致することを確認してください。
読み終わるまでの所要時間 2 分最終更新 10日前
プレースメントのリクエスト
プレースメントをリクエストするには、TJPlacementリスナーメソッドを配置し、プレースメントをインスタンス化したら、そのプレースメントのコンテンツをリクエストできます。TJPlacementListener placementListener = this;TJPlacement p = Tapjoy.getPlacement("[PLACEMENT_NAME]", placementListener);
コンテンツをリクエストする前に、Tapjoy Connect 呼び出しが成功したことを確認してください。if(Tapjoy.isConnected()) p.requestContent();else Log.d("MyApp", "Tapjoy SDK must finish connecting before requesting content.")
onConnectSuccessコンテンツの事前キャッシュ
最高のユーザー体験を提供するために、ユーザーにそのコンテンツが表示されるコンテンツを事前にリクエストします。例えば、プレースメントがメインメニューのボタンの場合、アプリケーションの起動時に、Tapjoy Connect 呼び出しが成功した直後にコンテンツをリクエストすることをお勧めします。コンテンツをリクエストするまで待つと、多くの場合、ユーザーはコンテンツがロードされるまで、ローディングスピナーを見ながら待たされることになります。広告の場合、ユーザーが広告に関与する可能性が低くなり、収益を得る可能性が低くなります。リスナー
さまざまなプレースメント応答をハンドルするためにデリゲートメソッドを準備する必要があります。少なくとも、クラスで TJPlacementListener インターフェースを拡張する必要があります (パブリッククラス YourMainActivity で拡張し、Activity で TJPlacementListener を実装します)。TJPlacementListenerお勧めのベストプラクティスは、ビデオを含む可能性のあるプレースメントからコンテンツを表示する前にオーディオをミュートすることです。ミュートしないと、ビデオとアプリのオーディオが競合する可能性があります。 多くの場合、onContentReady デリゲートが発生するまで待ってから、ユーザーにコンテンツを表示することをお勧めします。こうすることにより、コンテンツが実際にデバイス上にあること、遅延なくユーザーに表示できることを確認できます。もう 1 つの同等の方法は、上の例のように、p.isContentReady() が true かどうかを確認することです。public void onRequestSuccess(TJPlacement placement); // This just means the SDK has made contact with the Offerwall servers. It does not necessarily mean that any content is available.public void onRequestFailure(TJPlacement placement, TJError error);public void onContentReady(TJPlacement placement); //This is called when the content is actually available to display.public void onContentShow(TJPlacement placement);public void onContentDismiss(TJPlacement placement);
プレースメントの表示
TJPLacement をリクエストするときは、TJPLacementListener オブジェクトを渡します。TJPlacementListener には "onRequestSuccess" のコールバックがあります。onRequestSuccess コールバックは、SDK によるサーバーへのコンテンツリクエストが正常に行われた後に発生します。これが発生すると、isContentAvailable 関数を呼び出すことで TJPlacement にコンテンツがあるかどうかを確認できます。public void onRequestSuccess(TJPlacement tjPlacement){ if(tjPlacement.isContentAvailable()) { //There is an ad unit available } else { //Fall-through }}
public void onContentReady(TJPlacement tjPlacement) { if(tjPlacement.isContentReady()) { // We can uncomment the following line to show the ad as soon as it finishes loading, // or call showContent at a later point when we're ready to display the ad. tjPlacement.showContent(); }}
コンテンツの再リクエスト
プレースメントからユーザーにコンテンツを正常に表示したら、コンテンツを再度リクエストして (例えばp.requestContent();p.showContent();if(p.isContentReady()) { p.showContent();}else { //handle situation where there is no content to show, or it has not yet downloaded.}
Tapjoy コンテンツアクションリクエストの処理
Reward (ゲーム内報酬) や IAP Promotion (アプリ内課金プロモーション) などの Tapjoy コンテンツタイプでは、そのコンテンツ単位で渡されたパラメーターに基づいてコードがアクションを実行する必要があります。例えば、Reward コンテンツ単位はアイテム名 (string) と数量 (integer) がユーザーに渡されることを指定します。ゲーム内報酬を反映するためにユーザーの広告在庫を実際に調整するのはアプリケーションです。これらの特殊なタイプのコンテンツ単位には、以下のデリゲートメソッドがあります。public void onPurchaseRequest(TJPlacement placement, TJActionRequest request, String productId); //onPurchaseRequest called when user clicks the product link in IAP promotion content. Put the code that actually triggers the IAP here.////public void onRewardRequest(TJPlacement placement, TJActionRequest request, String itemId, int quantity); //called when the content closed in reward content
エントリーポイントの設定
任意で、各プレースメントのエントリーポイントを Tapjoy に伝えることができます。以下のさまざまなプリセット値から選択できます。プレースメントオブジェクトの作成後、かつコンテンツをリクエストする前にエントリーポイントを設定します。TJEntryPoint.ENTRY_POINT_UNKNOWNTJEntryPoint.ENTRY_POINT_OTHERTJEntryPoint.ENTRY_POINT_MAIN_MENUTJEntryPoint.ENTRY_POINT_HUDTJEntryPoint.ENTRY_POINT_EXITTJEntryPoint.ENTRY_POINT_FAILTJEntryPoint.ENTRY_POINT_COMPLETETJEntryPoint.ENTRY_POINT_INBOXTJEntryPoint.ENTRY_POINT_INITTJEntryPoint.ENTRY_POINT_STORE
TJPlacement placement = Tapjoy.getPlacement("myPlacement", null);placement.setEntryPoint(TJEntryPoint.ENTRY_POINT_MAIN_MENU);placement.requestContent();