---
title: ホストされたデータレイヤー
description: モバイル向けのホストされたデータレイヤー機能について学びましょう。
url: https://docs.tealium.com/ja/platforms/getting-started-mobile/hosted-data-layer/
---
## サポートされているプラットフォーム

以下のプラットフォームでは、ホストされたデータレイヤーがサポートされています：

- [Android (Kotlin)](https://docs.tealium.com/ja/platforms/android-kotlin/)
- [iOS (Swift v2.x)](https://docs.tealium.com/ja/platforms/ios-swift/)

## 仕組み

ホストされたデータレイヤーは、モバイルアプリの動的データレイヤーを補完するため、またはJSON構成ファイルをホストするために、静的にホストされたデータの使用を容易にします。モバイルアプリに実装されたデータレイヤーは、リアルタイムの情報をキャプチャするのに役立ちますが、オフラインシステムからの追加の価値ある情報を含めるのは難しい場合があります。ホストされたデータレイヤーは、静的なデータをTealiumにアップロードする便利なメカニズムを提供し、これによりモバイルアプリがデータを豊かにしたり、JSONファイルを使用するアプリケーションを動かすことができます。

Tealium for mobileは、特定のデータレイヤーアイテムをリモートに保存し、アプリにダウンロードさせるホストされたデータレイヤーをサポートしています。この機能は、データレイヤーの属性がネイティブコードで利用できないが、組織から利用可能にできる任意のシナリオで役立ちます。例えば、あなたのeコマースシステムは、`product_is_in_stock`や`product_has_free_shipping`のような商品属性を持っているかもしれませんが、これらはネイティブコードで簡単にアクセスすることができず、ホストされたデータレイヤーファイルとしてアップロードすることができます。

_ルックアップ変数_は、データレイヤーが対応するホストされたデータレイヤーオブジェクトを取得するために使用する変数を識別します。ホストされたデータレイヤーのデータアイテムはデフォルトで7日間保持され、期限が切れた後に再ダウンロードされます。

追加情報：

- [ホストされたデータレイヤーについて](https://docs.tealium.com/use-case-supplementing-product-data/)
- [ホストされたデータレイヤーAPI](https://docs.tealium.com/about-hosted-data-layer-api/)


## 構成

Tealiumライブラリを初期化する前に、ホストされたデータレイヤーのキー（ルックアップ変数）を識別し、以下のプロパティを構成します。キー値は、ホストされたデータレイヤーモジュールがデータレイヤーIDを取得するために使用されます。

- Android: [`hostedDataLayerEventMappings`](https://docs.tealium.com/ja/platforms/android-kotlin/api/tealium-config/#hosteddatalayereventmappings)
- Swift: [`hostedDataLayerKeys`](https://docs.tealium.com/ja/platforms/ios-swift/api/tealium-config/#hosteddatalayerkeys)

デフォルトでは、ホストされたデータレイヤーのデータは7日間保持され、期限が切れた後に再ダウンロードされます。以下のプロパティを構成することで、ホストされたデータレイヤーのデータの有効期限を構成できます。

- Android: [`hostedDataLayerMaxCacheTimeMinutes`](https://docs.tealium.com/ja/platforms/android-kotlin/api/tealium-config/#hosteddatalayermaxcachetimeminutes)
- Swift: [`hostedDataLayerExpiry`](https://docs.tealium.com/ja/platforms/ios-swift/api/tealium-config/#hosteddatalayerexpiry)


<blockquote>
有効期限を短く構成すると、ネットワークリクエストが増えるため、モバイルデバイスのバッテリー寿命が短くなります。
</blockquote>


## ユースケース：製品データの補完

シナリオ：

- モバイルアプリで販売している製品の情報をデータベースに持っています。
- `ID`、`Price`、`Name`などの基本的な製品属性は、モバイルアプリで容易に利用でき、現在はデータレイヤーに格納されています。
- モバイルアプリからは利用できないオフラインシステムには、データレイヤーに追加したい製品属性が含まれています。例えば、`SKU`、`In Store Availability`、`Free Shipping Status`、`Brand`などです。

以下の手順は、このユースケースの実装プロセスを説明しています：

1. **ルックアップ変数を識別する**  
データレイヤーには`product_id`が含まれており、これはオフラインデータの識別子でもあり、ルックアップ変数の良い候補です。
2. **ホストされたデータレイヤーオブジェクトを作成し、アップロードする**  
オフラインの製品データをJSONファイルにエクスポートし、それらを`product_id`の予想される値に基づいて命名します。例えば、データレイヤーに`product_id=["PRD123"]`が含まれている場合、対応するホストされたデータレイヤーファイルは`PRD123.js`と命名されます。各製品について別々のファイルを作成します。

以下の表は、エンリッチメントプロセスを適用した結果を示しています。

| エンリッチメント | 結果 |
| --- | --- |
| データレイヤー `utag_data`|`{ "page_type":"product", "product_id":["PRD123"]}` |
| ホストされたデータレイヤーオブジェクト `PRD123.js`|`{"has_free_shipping":["0"], "has_instore_pickup":["1"]}` |
| マージされたデータレイヤー |`{"page_type":"product", "product_id":["PRD123"], "has_free_shipping":["0"], "has_instore_pickup":["1"]}` |

## トラブルシューティング

以下は、トラブルシューティングのヒントです：

* ディスパッチにホストされたデータレイヤーコンポーネントが含まれているトラックコールは、リモートファイルを取得するために必要な追加時間のため、順序が前後する可能性があります。これは、アイテムの有効なキャッシュが存在する場合は適用されません、なぜならルックアップは必要ないからです。
* ホストされたデータレイヤーのリクエストが行われたときにサーバーエラーや接続エラーが発生した場合、リクエストは最大5回まで再試行されます。5回の失敗後、ホストされたデータレイヤーデータなしでトラックコールが送信されます。
* Tealium上でアイテムの有効なレコードが見つからない場合、ホストされたデータレイヤーデータなしでトラックコールが送信されます。
* リクエストされているホストされたデータレイヤーアイテムの有効なキャッシュが存在しない場合、最初のリクエストはキューに入れられ、キューがフラッシュされたときにのみ送信されます。この動作は、バッチ処理されたイベントの最大数に達した場合や、アプリがバックグラウンドにある場合に自動的に行われます。