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

Android UX ヘルパー

Rokt UX ヘルパーは、サーバー間環境で美しい顧客体験をレンダリングするのに役立つオープンソースプロジェクトです。プロジェクトは Github ページ で確認および貢献できます。

このドキュメントは、Android アプリに Rokt UX ヘルパーを統合するプロセスを概説しており、サーバー間統合(S2S)と連携して、チェックアウト時に顧客に関連する体験を提供します。

システムバージョン
UX ヘルパー0.4.0
Android バージョン/API レベル5.0+ (API レベル 21)
パッケージマネージャーMaven / Gradle
Compose BOM2024.09.02

インストールガイド

あなたのモジュール(アプリレベル)Gradleファイル(通常は<project>/<app-module>/build.gradle.ktsまたは<project>/<app-module>/build.gradle)にRokt UX Helper依存関係を追加します。

build.gradle.kts
implementation("com.rokt:roktux:0.1.0")

RoktLayout の初期化

Compose ビューに RoktLayout を追加します

// サーバーから体験レスポンスを取得する
val experienceResponse = viewModel.experienceResponse.collectAsState()

experienceResponse.value?.let { experienceResponse ->
RoktLayout(
experienceResponse = experienceResponse,
location = "RoktEmbedded1",
onUxEvent = { println("RoktEvent: UxEvent Received $it") },
onPlatformEvent = { println("RoktEvent: onPlatformEvent received $it") },
roktUxConfig = RoktUxConfig.builder()
.imageHandlingStrategy(NetworkStrategy())
.build(),
)
}

UXイベント

onUXEventハンドラーを使用して、ユーザーのインタラクションに関するリアルタイムのフィードバックを受け取ります。

最低限、RoktUXEvent.OpenUrlイベントがトリガーされたときに処理する必要があります。以下の例を使用してリンクを開くことができます。

備考

OpenUrl - onClose

OpenUrlタイプのイベントを処理する際には、onCloseコールバックを呼び出すことが重要です。これにより、RoktUXHelperに次のオファーに移動するなどのロジックを実行させることができます。

openUrlEvent.onClose.invoke(openUrlEvent.id)
onUxEvent = { event ->
println("RoktEvent: onUxEvent received $event")

if (event is RoktUxEvent.OpenUrl) {
val openUrlEvent = event as RoktUxEvent.OpenUrl
when (openUrlEvent.type) {
OpenLinks.Internally -> {
// ユーザーをアプリに留めるためにAndroidXブラウザまたは類似の機能を開きます
val customTabsIntent = CustomTabsIntent.Builder().build()
customTabsIntent.launchUrl(context, Uri.parse(openUrlEvent.url))

openUrlEvent.onClose.invoke(openUrlEvent.id) // ユーザーが次のオファーに進む準備ができたときに呼び出される必要があります
}
OpenLinks.Externally -> {
// ユーザーがアプリを離れることを許可する外部ブラウザを開きます
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(openUrlEvent.url))
context.startActivity(intent)

openUrlEvent.onClose.invoke(openUrlEvent.id) // ユーザーが次のオファーに進む準備ができたときに呼び出される必要があります
}
}
}
}
すべてのイベント

UXイベント

イベント説明パラメータ
OfferEngagementユーザーがオファーに関与したときにトリガーされますlayoutId: String
PositiveEngagementユーザーがオファーに対して肯定的に関与したときにトリガーされますlayoutId: String
LayoutInteractiveレイアウトがレンダリングされて対話可能になったときにトリガーされますlayoutId: String
LayoutReadyレイアウトが表示準備ができているが、まだコンテンツがレンダリングされていないときにトリガーされますlayoutId: String
LayoutClosedユーザーによってレイアウトが閉じられたときにトリガーされますlayoutId: String
LayoutCompletedオファーの進行が終了し、表示可能なオファーがもうないときにトリガーされますlayoutId: String
LayoutFailure何らかの失敗によりレイアウトが表示できなかったときにトリガーされますlayoutId: String (省略可能)
OpenUrlリンクを開く必要があるときにトリガーされますurl: String, id: String, type: OpenURLType (内部/外部), onClose: (id: String) -> Unit, onError: (id: String, throwable: Throwable)

PlatformEvents

プラットフォームイベントは統合の重要な部分であり、バックエンド経由でRoktに送信される必要があります。統合を簡素化するために、このオブジェクトはRoktPlatformEventsWrapperタイプであり、@Serializableを実装し、toJsonString関数を提供します。

onPlatformEvent = { events ->
// これらのプラットフォームイベントをイベント本文と共にRokt APIに送信します
}

イベントの完全なリストはこちらで見つけることができます。


<ColorMode />

<ImageLoader />

### フォント

```kotlin
val fontFamily = remember {
val robotoLight = Font(resId = R.font.roboto_light, weight = FontWeight.W100)
val robotoItalic = Font(resId = R.font.roboto_italic, weight = FontWeight.W400)
FontFamily(robotoLight, robotoItalic)
}

RoktUxConfig.builder()
.composeFontMap(mapOf("roboto" to fontFamily))
.build()
この記事は役に立ちましたか?