メインコンテンツまでスキップ

プレースメントを追加する

Roktのパートナー向けに、Android SDKを使用してあなたのアンドロイドアプリにオーバーレイまたは埋め込みプレースメントを表示できます。

始める前に

Rokt Android SDKがあなたのアプリケーションに統合されていることを確認してください。

オーバーレイプレースメント

目的のアクティビティ/フラグメントでSDKを実行し、適切な顧客属性とプレースメントマッピングを追加します。サンプルコードではonCreateメソッドを使用してプレースメントを起動しています。

Roktウィジェットビューは、Roktプラットフォームを通じて設定可能な短い遅延の後に表示されます。ビューがロードおよびアンロードされる際のオプションのコールバックイベントをSDKで提供しています。

あなたのRokt統合に含める顧客属性を決定できます。利用可能なデータフィールドの詳細については、attributesページをご覧ください。より多くの属性を統合したい場合は、以下のサンプルに新しい属性ごとに追加のコード行を追加することができます。

import com.rokt.roktsdk.Rokt;

class ConfirmationActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...

Map<String,String> attributes = new HashMap<String, String>();

attributes.put("email", "j.smith@example.com");
attributes.put("firstname", "Jenny");
attributes.put("lastname", "Smith");
attributes.put("mobile", "(323) 867-5309");
attributes.put("postcode", "90210");
attributes.put("country", "US");

Rokt.INSTANCE.execute("RoktExperience",
attributes,
new Rokt.RoktCallback() {
@Override
public void onLoad() {
}
@Override
public void onUnload(Rokt.UnloadReasons unloadReasons) {
}
@Override
public void onShouldHideLoadingIndicator() {
}
@Override
public void onShouldShowLoadingIndicator() {
}
}
)
...
}
}

オプション機能

関数目的
Rokt.close()オーバーレイプレースメントを自動で閉じるのに使用されます。

埋め込みプレースメント

レイアウトXMLファイルの更新

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<com.rokt.roktsdk.Widget
android:id="@+id/roktWidget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
注記

Roktの埋め込みプレースメントは、コード内で作成し、動的にレイアウトに含めることもできます。

SDKの実行

SDKを希望するアクティビティ/フラグメントで実行し、適切な顧客属性とプレースメントマッピングを追加します。例のコードは、onCreateメソッドを使用してプレースメントを起動しています。

Roktプレースメントは短い遅延の後に表示され、この遅延はRoktプラットフォームで設定可能です。

プレースメントの高さを動的に設定できるよう、プレースメントの高さをwrap_contentに設定することをお勧めします。

SDKは、ビューがロードおよびアンロードされるときのオプションのコールバックイベントを提供します。

Roktの統合に含める顧客属性を選択できます。利用可能なデータフィールドに関する詳細は、attributesページで確認できます。より多くの属性を追加したい場合は、新しい属性ごとに以下のサンプルに追加のコード行を追加できます。

import com.rokt.roktsdk.Widget;
import com.rokt.roktsdk.Rokt;

class ConfirmationActivity : Activity() {

private Rokt.RoktCallback roktCallback = new Rokt.RoktCallback() {
@Override
public void onLoad() {
}

@Override
public void onShouldShowLoadingIndicator() {
}

@Override
public void onShouldHideLoadingIndicator() {
}

@Override
public void onUnload(@NotNull Rokt.UnloadReasons unloadReasons) {
}
};

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...

Map<String, String> attributes = new HashMap<String, String>();

attributes.put("email", "j.smith@example.com");
attributes.put("firstname", "Jenny");
attributes.put("lastname", "Smith");
attributes.put("mobile", "(323) 867-5309");
attributes.put("postcode", "90210");
attributes.put("country", "US");

// Widget placeholder mapping the placeholder view with placement location configuration
Widget widget = findViewById(R.id.roktWidget);
Map<String, WeakReference<Widget>> placeHolders = new HashMap<>();
placeHolders.put("RoktEmbedded1", new WeakReference<>(widget));

Rokt.INSTANCE.execute("RoktExperience",
attributes,
roktCallback,
placeHolders);
...
}
}
注記

ビュー名 RoktExperience またはプレースホルダー名 RoktEmbedded1 を異なる値に更新したい場合は、Adjust のアカウントマネージャーに連絡して、Rokt プレースメントが一貫して設定されていることを確認してください。

Rokt Android SDK のメジャーバージョン 4 から、RoktLayout のコンポーズ可能を利用して Rokt レイアウトを追加することができます。これにより、Rokt.execute を呼び出す必要がなくなり、Compose を使用したより現代的な宣言型の統合がサポートされます。

コンポーネントの追加

import com.rokt.roktsdk.RoktLayout

@Composable
fun MainScreen(modifier: Modifier = Modifier) {
Column(
modifier = modifier
.background(Color.LightGray)
.padding(8.dp),
) {
RoktLayout(
sdkTriggered = true,
viewName = "RoktExperience",
attributes = hashMapOf(
Pair("email", "j.smith@example.com"),
Pair("firstname", "Jenny"),
Pair("lastname", "Smith"),
Pair("mobile", "(323) 867-5309"),
Pair("postcode", "90210"),
Pair("country", "US")
),
location = "RoktEmbedded1", // 埋め込みレイアウトを使用する場合
onLoad = {},
onUnload = {},
onShouldShowLoadingIndicator = {},
onShouldHideLoadingIndicator = {},
)
}
}
注記

RoktLayout のコンポーズ可能は、埋め込みレイアウトとオーバーレイレイアウトの両方に使用できます。

イベント

このSDKは、各ページ上でのイベントをストリームとしてRokt.events APIを通じて提供します。SDKのユーザーは、Kotlin Flowメカニズムを活用して、SDKによって生成されたイベントを消費することができます。

// owner: LifecycleOwner
owner.lifecycleScope.launch {
owner.lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
Rokt.events("viewName").collect { roktEvent ->
Log.d("RoktEvent", "イベントを受信 $roktEvent")
}
}
}

イベントオブジェクト

イベント説明パラメータ
ShowLoadingIndicatorSDKがRoktバックエンドを呼び出す前にトリガーされます
HideLoadingIndicatorSDKがRoktバックエンドから成功または失敗を受け取ったときにトリガーされます
OfferEngagementユーザーがオファーに参加したときにトリガーされますplacementId: String
PositiveEngagementユーザーがオファーに積極的に参加したときにトリガーされますplacementId: String
FirstPositiveEngagementユーザーが初めてオファーに積極的に参加したときにトリガーされますplacementId: String, fulfillmentAttributes: FulfillmentAttributes
PlacementInteractiveプレースメントがレンダリングされ、インタラクト可能になったときにトリガーされますplacementId: String
PlacementReadyプレースメントが表示の準備ができていますが、まだコンテンツがレンダリングされていないときにトリガーされますplacementId: String
PlacementClosedプレースメントがユーザーによって閉じられたときにトリガーされますplacementId: String
PlacementCompletedオファーの進行が終了し、表示するオファーがもうないときにトリガーされます。
また、キャッシュがヒットしたが以前に却下されたため、取得されたプレースメントが表示されない場合もトリガーされます
placementId: String
PlacementFailure何らかの不具合によりプレースメントを表示できなかったときにトリガーされますplacementId: String (オプション)

コールバック

Rokt Android SDK は、executeRokt.RoktCallback オブジェクトとして渡される以下のコールバックをサポートしています:

onLoad

onLoad コールバックは、プレースメントが読み込み可能で対話可能になったときに呼び出されます。このコールバックは引数を提供せず、値も返しません。

onShouldShowLoadingIndicator

onShouldShowLoadingIndicator は、成功した実行呼び出しの直後、SDK が Rokt バックエンドへの呼び出しをトリガーする直前に呼び出されます。プレースメントが読み込まれるのを待っている間、ローディングインジケータの進行ビューを表示するために使用できます。引数は必要なく、値も返しません。

注記

このコールバックの動作は、Rokt Android SDK のメジャーバージョン 3 とメジャーバージョン 4 の間で変更されました。コールバックが実行される前に 1 秒の遅延はなくなりました。メジャーバージョン 3 でこれらのコールバックを使用している場合、メジャーバージョン 4 にアップグレードする際に、ユーザーエクスペリエンスに影響がないか確認するために動作をテストしてください。必要に応じて、アプリケーションのニーズに合った遅延動作を作成することができます。

onShouldHideLoadingIndicator

onShouldHideLoadingIndicator コールバックは、SDK が Rokt バックエンドから成功または失敗のレスポンスを取得したときに呼び出されます。これは、進行状況ビューや読み込みインジケーターをキャンセルするために使用できます。引数は必要なく、値を返しません。

onUnload

onUnload コールバックは、SDK がプレースメントを閉じたときに呼び出されます。また、execute 呼び出しが失敗した場合にもトリガーされます。これは、Rokt.UnloadReasons を引数として受け取りますが、値を返しません。アンロードの理由は次のとおりです:

理由
NO_OFFERS表示可能なオファーがありません
FINISHEDレンダリングされたプレースメントまたはレイアウトが閉じられた
TIMEOUTバックエンドからのレスポンスのリクエストがタイムアウトしました
NETWORK_ERRORネットワークエラーが発生しました
NO_WIDGET返されたプレースメントまたはレイアウトが無効または空です
INIT_FAILEDexecute が呼び出される前の初期化リクエストが失敗しました
UNKNOWN_PLACEHOLDERプレースホルダー文字列の不一致 (4.x.x 以降で利用可能)
UNKNOWN包括的な理由
この記事は役に立ちましたか?