プレースメントを追加する (レガシー)
Rokt SDK for Flutter は、アプリのコンテンツ上にオーバーレイプレースメントを表示するために使用できます。
始める前に
Rokt Flutter SDK がすでにアプリケーションに統合されていることを確認してください。
オーバーレイプレースメント
SDK をインポートする
SDK をアプリケーションの dart ファイルにインポートします:
import 'package:rokt_sdk/rokt_sdk.dart';
SDK を実行する
適切な顧客属性を追加することで、希望するポイントで SDK を実行します。Rokt プレースメントは、Rokt プラットフォームを介して設定可能な短い遅延の後に表示されます。
Rokt 統合に含める顧客属性を指定できます。利用可能なデータフィールドに関する詳細は、attributes ページで確認できます。より多くの属性を統合したい場合は、以下のサンプルに新しい属性ごとに追加のコード行を追加できます。
void executeRokt() {
// RoktExperience を viewName に置き換えてください
RoktSdk.execute(
viewName: "RoktExperience",
attributes: {"email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"},
onLoad: () {
// Rokt プレースメントがロードされたときのオプションのコールバック
},
onUnLoad: () {
// Rokt プレースメントがアンロードされたときのオプションのコールバック
},
onShouldShowLoadingIndicator: () {
// ローディングインジケーターを表示するためのオプションのコールバック
},
onShouldHideLoadingIndicator: () {
// ローディングインジケーターを非表示にするためのオプションのコールバック
});
}
ViewName(「RoktExperience」)は、SDK がアプリ内の異なるコンテキストで実行される場所に応じて異なるエクスペリエンスを表示するために、複数の場所で SDK を実行する際に変更できます。ViewName を変更する場合は、Rokt システム内で一致する調整が行われるように Rokt チームと協力してください。
埋め込みプレースメント
SDKのインポート
JavaScriptファイルにRokt SDKをインポートします:
import 'package:rokt_sdk/rokt_sdk.dart';
RoktWidgetをビューに追加
ビューのbuild関数にRoktWidgetを追加します。executeメソッドが呼び出されると、このプレースホルダーにRoktウィジェットが挿入されます:
const RoktWidget(placeholderName: "RoktEmbedded1")
ビューが画面の可視領域に作成されていることを確認し、次にshowWidgetを呼び出してください。
RoktWidgetにはウィジェットが作成されたことを通知するコールバックがあります。
RoktWidget(placeholderName: "RoktEmbedded1", onWidgetCreated: () { showWidget() })
Rokt Flutter SDKの実行
適切な顧客属性を送信して、希望するポイントでSDKを実行します。Roktプレースメントは、Roktプラットフォームを通じて設定可能な短い遅延の後に表示されます。
Rokt統合に含まれる顧客属性を指定できます。利用可能なデータフィールドの詳細は、attributesページで確認できます。さらに属性を統合したい 場合は、以下のサンプルに新しい属性ごとに追加のコード行を追加できます。
void executeRokt() {
// RoktExperienceをviewNameに置き換えてください
RoktSdk.execute(
viewName: "RoktEmbeddedExperience",
attributes: {"email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"},
onLoad: () {
// Roktプレースメントがロードされたときのオプションのコールバック
},
onUnLoad: () {
// Roktプレースメントがアンロードされたときのオプションのコールバック
},
onShouldShowLoadingIndicator: () {
// ローディングインジケーターを表示するためのオプションのコールバック
},
onShouldHideLoadingIndicator: () {
// ローディングインジケーターを非表示にするためのオプションのコールバック
});
}
ViewName(「RoktEmbeddedExperience」)は、SDKを複数の場所で実行する際に変更することができます。この設定により、アプリ内でSDKが実行されている場所のコンテキストに応じて異なるエクスペリエンスを表示することができます。ViewNameやplaceholderName(「RoktEmbedded1」)を変更する場合は、Roktシステム内で一致する調整が行われるよう、Roktチームと協力してください。
イベント
バージョン4.3.0から、Rokt SDKはSDKイベント用にEventChannelを公開しています
final EventChannel roktEventChannel = EventChannel('RoktEvents');
//...
roktEventChannel.receiveBroadcastStream().listen((dynamic event) {
debugPrint("Rokt event received $event");
switch (event["event"]) {
case "ShowLoadingIndicator":
debugPrint("Event ${event["viewName"]}");
break;
case "HideLoadingIndicator":
debugPrint("Event ${event["viewName"]}");
break;
case "OfferEngagement":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PositiveEngagement":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "FirstPositiveEngagement":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PlacementInteractive":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PlacementReady":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PlacementClosed":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PlacementCompleted":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "PlacementFailure":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
break;
case "OpenUrl":
debugPrint("Event ${event["viewName"]}, ${event["placementId"]}");
default:
break;
}
});
イベントオブジェクト
| イベント | 説明 | その他のプロパティ |
|---|---|---|
| ShowLoadingIndicator | SDKがRoktバックエンド を呼び出す前にトリガーされます | viewName: String |
| HideLoadingIndicator | SDKがRoktバックエンドから成功または失敗を受信したときにトリガーされます | viewName: String |
| OfferEngagement | ユーザーがオファーに関与したときにトリガーされます | viewName: String, placementId: String |
| PositiveEngagement | ユーザーがオファーに対して積極的に関与したときにトリガーされます | viewName: String, placementId: String |
| FirstPositiveEngagement | ユーザーが初めてオファーに対して積極的に関与したときにトリガーされます | viewName: String, placementId: String |
| PlacementInteractive | プレースメントがレンダリングされ、インタラクティブになったときにトリガーされます | viewName: String, placementId: String |
| PlacementReady | プレースメントが表示の準備ができているが、まだコンテンツがレンダリングされていないときにトリガーされます | viewName: String, placementId: String |
| PlacementClosed | ユーザーによってプレースメントが閉じられたときにトリガーされます | viewName: String, placementId: String |
| PlacementCompleted | オファーの進行が終了し、表示するオファーがもうないときにトリガーされます。 また、キャッシュがヒットしたが、以前に却下されたために取得されたプレースメントが表示されない場合にもトリガーされます | viewName: String, placementId: String |
| PlacementFailure | 何らかの失敗によりプレースメントを表示できない場合、または表示するプレースメントがない場合にトリガーされます | viewName: String, placementId: String (optional) |
| OpenUrl | ユーザーがパートナーアプリに送信するように設定されたURLを押したときにトリガーされます | viewName: String, placementId: String, url: String |
コールバック
Rokt Flutter SDKは、executeに渡される以下のコールバックをサポートしています:
onLoad
onLoadコールバックは、プレースメントが読み込まれ、インタラクティブになったときに呼び出されます。このコールバックは引数を提供せず、値を返しません。
onShouldShowLoadingIndicator
onShouldShowLoadingIndicatorは、SDKがRoktバックエンドへの呼び出しをトリガーする直前に、executeの呼び出しが成功した際に呼び出されます。プレースメントの読み込みを待つ間、読み込みインジケーターの進行状況ビューを表示するために使用できます。引数を必要とせず、値を返しません。
このコールバックの動作は、Rokt Flutter SDKのメジャーバージョン3とメジャーバージョン4の間で変更されました。コールバックが実行される前に1秒の遅延はなくなりました。メジャーバージョン3でこれらのコールバックを使用している場合、メジャーバージョン4にアップグレードする際には、ユーザーエクスペリエンスに影響がないことを確認するために動作をテストしてください。必要に応じて、アプリケーションのニーズに合った遅延動作を作成できます。
onShouldHideLoadingIndicator
onShouldHideLoadingIndicator コールバックは、SDK が Rokt バックエンドから成功または失敗のレスポンスを受け取ったときに呼び出されます。これは、プログレスビューやローディングインジケーターをキャンセルするために使用できます。引数を必要とせず、値を返しません。