Android SDK ベストプラクティス (レガシー)
モバイルアプリケーションのパフォーマンスは、ビジネスにとって非常に重要です。私たちの技術は、アプリのユーザーエクスペリエンスを向上させることに焦点を当てています。そのため、画面のパフォーマンスは私たちのソリューションの中核を成しています。エンゲージメントとコンバージョン率を向上させるために、画面の読み込み時間を最小限に抑えるためのいくつかのアプローチを採用しています。
Jetpack Compose コンポーネント
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),
) {
// アプリケーションがライトモードのみをサポートしている場合
val config = remember {
RoktConfig.Builder().colorMode(RoktConfig.ColorMode.LIGHT).build()
}
RoktLayout(
sdkTriggered = true,
viewName = "RoktExperience",
attributes = mapOf(
"email" to "j.smith@example.com",
"firstname" to "Jenny",
"lastname" to "Smith",
"mobile" to "(323) 867-5309",
"postcode" to "90210",
"country" to "US"
),
location = "RoktEmbedded1", // 埋め込みレイアウトを使用する場合
onLoad = {},
onUnload = {},
config = config,
onShouldShowLoadingIndicator = {},
onShouldHideLoadingIndicator = {},
)
}
}
注記
RoktLayout コンポーザブルは、埋め込みレイアウトとオーバーレイレイアウトの両方に使用できます。
アプリケーション設定の使用
アプリケーションは、独自のアプリケーション環境から設定を渡すことができるようになりました。これにより、Rokt SDK はシステムのデフォルトに依存することなく、アプリケーションのカスタム設定を使用することができます。
ColorMode オブジェクト
| 値 | 説明 |
|---|---|
| LIGHT | アプリケーションはライトモードです |
| DARK | アプリケーションはダークモードです |
| SYSTEM | アプリケーションはシステムのカラーモードにデフォルトします |
EdgeToEdgeDisplay ブール値
| 値 | 説明 |
|---|---|
| true(デフォルト) | アプリケーションはエッジ・ツー・エッジディスプレイモードをサポートします |
| false | アプリケーションはエッジ・ツー・エッジディスプレイモードをサポートしません |
import com.rokt.roktsdk.Rokt
// アプリケーションがライトモードのみをサポートし、エッジ・ツー・エッジディスプレイが有効になっている場合。
val roktConfig = RoktConfig.Builder().colorMode(RoktConfig.ColorMode.LIGHT).edgeToEdgeDisplay(true).build()
Rokt.execute(
// 他のパラメータ,
config = roktConfig,
)
CacheConfig オブジェクト
| パラメータ | 説明 |
|---|---|
| cacheDuration | Rokt SDK がエクスペリエンスをキャッシュする秒数のオプションの期間です。許可される最大値は90分で、デフォルト(値が提供されていない場合や無効な場合)は90分です。 |
| cacheAttributes | キャッシュキーとして使用されるオプションの属性です。nullの場合、Rokt.executeで送信されたすべての属性がキャッシュキーとして使用されます。 |
import com.rokt.roktsdk.Rokt
// エクスペリエンスを1200秒間キャッシュし、emailとorderNumber属性をキャッシュキーとして使用する例
val roktConfig = RoktConfig.Builder().cacheConfig(
CacheConfig(
cacheDurationInSeconds = 1200,
cacheAttributes = mapOf("email" to "j.smith@example.com", "orderNumber" to "123")
)
).build()
Rokt.execute(
// 他のパラメータ,
config = roktConfig,
)
フォントタイプフェイスの使用
Android SDK の初期化で説明されているように独自のフォントタイプフェイスを使用する場合、executeにタイプフェイスオブジェクトへの弱参照のマップを渡す必要があります。
- Java
- Kotlin
import com.rokt.roktsdk.Rokt
class ConfirmationActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
// 適切な消費者属性を含める
val attributes = mapOf(
"email" to "j.smith@example.com",
"firstname" to "Jenny",
"lastname" to "Smith",
"mobile" to "(323) 867-5309",
"postcode" to "90210",
"country" to "US",
)
val fontTypefaces = mapOf(
"Arial-Bold" to WeakReference(yourTypefaceObject),
)
Rokt.execute("RoktExperience",
attributes,
object : Rokt.RoktCallback {
override fun onUnload(reason: Rokt.UnloadReasons) {
}
override fun onLoad() {
}
override fun onShouldHideLoadingIndicator() {
}
override fun onShouldShowLoadingIndicator() {
}
},
fontTypefaces,
)
...
}
}
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");
Map<String, WeakReference<Typeface>> fontTypefaces = new HashMap<>();
fontTypefaces.put("Arial-Bold", new WeakReference<>(yourTypefaceObject));
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() {
}
},
fontTypefaces
)
...
}
}
詳細については、how-to セクションを参照してください。