ロケーションモジュール
イベント用のデバイスの位置情報と興味のあるポイントの周囲にジオフェンスを追加する機能を提供します。
ロケーションモジュールは、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でロケーションモジュールをインストールするには、Podfileに次のポッドを追加します:
pod 'tealium-swift/Location'
Carthage
Carthageでロケーションモジュールをインストールするには:
-
XcodeでアプリターゲットのGeneral構成ページに移動します。
-
次のフレームワークをEmbedded Binariesセクションに追加します:
TealiumLocation.framework
初期化
モジュールを初期化するには、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>店舗の近くにいるときに割引を送信するため</string>
</dict>
位置追跡
ユーザーが位置情報サービスを承認すると、ロケーションモジュールは連続的な位置追跡を実行します。位置更新は、精度と距離の構成に基づいています。
ジオフェンス機能を無効にすると、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 リファレンス
ロケーションモジュールで使用されるメソッドのリファレンスについては、iOS APIのTealium SDKのLocationModule
クラスを参照してください。
最終更新日 :: 2025年July月30日