ロケーションモジュール
イベントのデバイス位置情報と、関心のあるポイント周辺にジオフェンスを追加する機能を提供します。
ロケーションモジュールは、iOSアプリが位置情報を受け取り、ジオフェンスを構成し監視する機能を有効にします。詳細を学ぶ 位置追跡とジオフェンシングについて。
サポートされているプラットフォーム
以下のプラットフォームがサポートされています:
要件
- Tealium for Swift (1.9.0+)
サンプルアプリ
iOSサンプルアプリを探索して、ライブラリ、トラッキング方法、ベストプラクティスの実装に慣れてください。メインのサンプルアプリにはロケーションモジュールとジオフェンシング機能の例が含まれています。
インストール
Swift Package Manager、CocoaPods、またはCarthageを使用してロケーションモジュールをインストールします。ロケーションモジュールは、位置イベントを送信するためにディスパッチャー(TealiumCollect
またはTealiumTagManagement
)を必要とします。
Swift Package Manager (推奨)
バージョン1.9.0+でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールする最も簡単で推奨される方法です:
- Xcodeプロジェクトで、File > Add Package Dependenciesを選択します。
- リポジトリURLを入力します:
https://github.com/tealium/tealium-swift
- バージョンルールを構成します。通常、
Up to next major
が推奨されます。現在のTealium Swiftライブラリバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットします。 - インストールするモジュールのリストから
Location
モジュールを選択し、Xcodeプロジェクトの各アプリターゲットに追加します。Frameworks and Librariesの下にあります。
iOS向けのSwift Package Managerインストールについて詳しく学びます。
CocoaPods
CocoaPodsでロケーションモジュールをインストールするには、次のpodをPodfileに追加します:
pod 'tealium-swift/Location'
iOS向けのCocoaPodsインストールについて詳しく学びます。
Carthage
Carthageでロケーションモジュールをインストールするには:
-
Xcodeでアプリターゲットの一般構成ページに移動します。
-
次のフレームワークをEmbedded Binariesセクションに追加します:
TealiumLocation.framework
iOS向けのCarthageインストールについて詳しく学びます。
初期化
モジュールを初期化するには、TealiumConfig
のcollectors
プロパティで指定されていることを確認します。
config.collectors = [Collectors.Location]
位置精度とジオフェンシングの追加オプションも、TealiumConfig
インスタンスで構成可能です。
Collectorsのドキュメンテーションを確認し、必要なコレクターを正しく指定する方法を理解してください。
認証
アプリが位置情報を収集するための認証を行うには、次のキーをアプリのInfo.plist
ファイルに追加します:
Privacy - Location When In Use Usage Description
Privacy - Location Always and When In Use Usage Description
キーが存在しない場合、位置情報のリクエストはすぐに失敗します。詳細を学ぶ 位置情報サービスの認証リクエストについて。
現在の実装でまだ位置情報の認証をリクエストしていない場合は、Tealiumのコールバック内でロケーションモジュールのAPIメソッドrequestAuthorization()
を使用できます:
func start() {
//...
tealium = Tealium(config: config) { _ in
self.tealium?.location?.requestAuthorization()
}
}
おおよその位置追跡 (iOS 14+)
Apple iOS 14+では、アプリ構成で正確な位置ではなく、おおよその位置を共有することができます。アプリが正確な位置を必要とし、ユーザーがデバイス構成を通じて最初に正確な位置追跡を無効にした場合、この方法が推奨されます。
すでにコードベースで一時的な完全な認証をリクエストしていない場合は、以下の例に示すようにTealiumのヘルパーメソッドrequestTemporaryFullAccuracyAuthorization
を使用して、一時的な完全な精度をリクエストします。
func start() {
//...
tealium = Tealium(config: config) { _ in
guard let location = self.tealium?.location else {
return
}
if location.isAuthorized {
location.requestTemporaryFullAccuracyAuthorization(purposeKey: "NearStore")
} else {
location.requestAuthorization()
}
}
}
String
パラメータpurposeKey
は、アプリのInfo.plist
ファイルのNSLocationTemporaryUsageDescriptionDictionary
辞書のキーに対応しています。以下の例を参照してください:
<key>NSLocationTemporaryUsageDescriptionDictionary</key>
<dict>
<key>NearStore</key>
<string>In order to send you discounts when you are near a store</string>
</dict>
一時的な完全な認証のリクエストについて詳しく学びます。
位置追跡
ユーザーが位置情報サービスを認証すると、ロケーションモジュールは連続的な位置追跡を行います。位置の更新は精度と距離の2つの構成に基づいています。
ジオフェンス機能を無効にすると、AppleのstartMonitoringSignificantLocationChanges()
メソッドによって重要な位置の更新のみが監視され、更新が少なくなり、バッテリーの消費が少なくなります。このメソッドは、プロパティconfig.geofencesTrackingEnabled
またはconfig.useHighAccuracy
のいずれかがfalseに構成されている場合に呼び出されます。それ以外の場合は、AppleのstartUpdatingLocation
メソッドが呼び出されます。
ジオフェンス機能はデフォルトで有効になっており、位置の更新はより頻繁に行われ、精度が向上します。より頻繁な位置の更新を有効または無効にするには、useHighAccuracy
プロパティを構成します。
より正確な位置と距離の構成が必要な場合は、更新をトリガーするメートル単位の値でupdateDistance
プロパティを構成します。
また、desiredAccuracy
という拡張精度構成もあり、これはアプリが受け取りたい精度のレベルを指定します。これはCLLocationManager desiredAccuracy
プロパティと同様です。iOS 14+ではデフォルト値は.reduced
で、それ以前のバージョンでは.nearestHundredMeters
です。
func start() {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE",
optionalData: nil)
config.useHighAccuracy = false
config.updateDistance = 150
config.desiredAccuracy = .nearestThreeKilometers
}
ジオフェンシング
ジオフェンシングはデフォルトで有効になっており、ジオフェンスを構成するには、次のいずれかの方法を使用してジオフェンスJSONファイルを提供します:
- ホストされたURL
自分でホストするジオフェンスファイルを使用し、プロパティgeofenceUrl
へのURLとして提供します。 このオプションは、パブリッシュ構成のURLを上書きした場合や、ホストされたデータレイヤーを使用したい場合に推奨されます。
config.geofenceUrl = "https://example.com/geofences.json"
- ローカルファイル
アプリに保存されたジオフェンスファイルを使用し、プロパティgeofenceFileName
を構成します。ファイル拡張子は省略します。
config.geofenceFileName = "geofences" // geofences.json
ジオフェンシングを無効にするには、geofenceTrackingEnabled
プロパティを構成します:
config.geofenceTrackingEnabled = false
追加の考慮事項
アクティブなジオフェンスの数
ジオフェンスは動的に追加および削除され、可能な限り少ないリソースを使用します。ジオフェンスの定義数には制限はありませんが、すべての 実行中のアプリケーションに対してデバイスユーザーごとのアクティブなジオフェンスの数は20に制限されています。
ジオフェンスの初期化
ユーザーがジオフェンスの作成時にその中にいる場合、enter
トランジションイベントは発火しません。これは、exit
およびenter
トランジションイベントは境界を越えたときに発火し、内部に現れたときには発火しないからです。
データレイヤー
以下の変数は、モバイルデータレイヤーの一部としてロケーションモジュールによって自動的に追加されます。これらの変数は、ライブラリからの各トラッキング呼び出しに自動的に含まれます。
変数名 | タイプ | 説明 | 例 |
---|---|---|---|
latitude |
String |
ユーザーの最近記録された位置の緯度 | 32.906119 |
longitude |
String |
ユーザーの最近記録された位置の経度 | -117.2367 |
location_accuracy |
String |
位置情報の更新が要求される頻度、例えばhigh またはlow |
high |
location_accuracy_extended |
String |
ロケーションモジュールの精度構成、例えばbest またはreduced |
reduced |
ジオフェンシング中に、ユーザーの遷移状態が変化したときに位置データを含むトラッキング呼び出しが送信されます。遷移状態の変化には、ユーザーがジオフェンスに入るか出ることが含まれます。以下の追加変数がデータレイヤーに送信されます:
変数名 | タイプ | 説明 | 例 |
---|---|---|---|
tealium_event |
String |
Tealiumがトラッキングするジオフェンスイベント | geofence_entered またはgeofence_exited |
geofence_name |
String |
ジオフェンス領域の名前 | Tealium_San_Diego |
geofence_transition_type |
String |
ジオフェンス遷移イベントのタイプ | geofence_entered またはgeofence_exited |
movement_speed |
String |
デバイスの瞬間速度、メートル/秒で測定 | 1.0 |
location_timestamp |
String |
ユーザーがジオフェンス領域に入った/出た日時(GMT)を記録 | 2020-01-28 16:29:46 +0000 |
APIリファレンス
ロケーションモジュールで使用されるメソッドのリファレンスについては、Tealium SDK for iOS APIのLocationModule
クラスを参照してください。
最終更新日 :: 2024年November月6日