Locationモジュール
Locationモジュールを使用すると、iOSアプリが位置情報を受信し、ジオフェンスを構成および監視できるようになります。位置追跡とジオフェンシングの詳細については、こちらを参照してください。
サポートされているプラットフォーム
以下のプラットフォームがサポートされています。
要件
- Tealium for Swift(1.9.0以降)
サンプルアプリ
当社のライブラリ、トラッキングメソッド、ベストプラクティスの実装に精通していただけるよう、iOSサンプルアプリをご確認いただけるようになっています。メインのサンプル アプリには、Location モジュールと、ジオフェンス機能の例が含まれています。
インストール
LocationモジュールをSwift Package Manager、CocoaPods、またはCarthageによってインストールします。Location モジュールでは、ディスパッチャー (TealiumCollect
または TealiumTagManagement
) によるロケーション イベントの送信を必要とします。
Swift Package Manager(推奨)
バージョン1.9.0以降でサポートされているSwift Package Managerは、Tealium Swiftライブラリをインストールするために推奨される最も簡単な方法です。
- Xcodeプロジェクトで、[File] > [Swift Packages] > [Add Package Dependency]を選択します。
- レポジトリのURLとして「https://github.com/tealium/tealium-swift」と入力します。
- バージョンルールを設定します。通常は
Up to next major
が推奨されます。現在のTealium Swiftライブラリバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットします。 - インストール対象モジュールのリストから
Location
モジュールを選択し、 [Frameworks] > [Libraries & Embedded Content] で、Xcode プロジェクトの各アプリ ターゲットにモジュールを追加します
iOS 向け Swift Package Manager のインストールの詳細は、こちらから参照してください。
CocoaPods
LocationモジュールをCocoaPodsによってインストールするには、Podfileに以下のポッドを追加します。
pod 'tealium-swift/Location'
iOS 向け CocoaPods のインストールの詳細は、こちらから参照してください。
Carthage
LocationモジュールをCarthageによってインストールするには:
Xcodeで対象アプリの[General]構成ページに移動します。
以下のフレームワークを[Embedded Binaries]セクションに追加します。
TealiumLocation.framework
iOS 向け Carthage のインストールの詳細は、こちらから参照してください。
初期化
このモジュールを初期化するには、 TealiumConfig
collectors
プロパティで指定されていることを確認します
config.collectors = [Collectors.Location]
位置の精度 と ジオフェンシング の追加オプションは、 TealiumConfig
のインスタンスのためにも設定可能です。
許可
位置情報を収集することをアプリに許可するには、次のキーをアプリのInfo.plist
ファイルに追加します。
Privacy - Location When In Use Usage Description
Privacy - Location Always and When In Use Usage Description
これらのキーが存在しない場合、位置情報リクエストはただちに失敗します。位置情報サービスの許可のリクエストの詳細については、こちらを参照してください。
現在の実装内でロケーション (位置情報) 許可をまだリクエストしていない場合は、Tealium 完了コールバック内の Location モジュールの API メソッド requestAuthorization()
を使用できます。
func start() {
//...
tealium = Tealium(config: config) { _ in
self.tealium?.location?.requestAuthorization()
}
}
Approximate Location Tracking (おおよその位置追跡) (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
は、以下の例に示すように、 NSLocationTemporaryUsageDescriptionDictionary
ディクショナリのキー (アプリ Info.plist
ファイルのもの) に対応します。
<key>NSLocationTemporaryUsageDescriptionDictionary</key>
<dict>
<key>NearStore</key>
<string>In order to send you discounts when you are near a store</string>
</dict>
暫定的な完全許可のリクエストの詳細は、こちらから参照してください。
位置追跡
Location モジュールは、ユーザーがロケーション (位置情報) サービスを許可すると、継続的な位置追跡を実行します。位置情報の更新は、精度と距離という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
の遷移イベントが境界を横断するときにトリガーされ、境界内に存在するときにはトリガーされないためです。
データレイヤー
以下の変数は、モバイルデータレイヤーの一部としてLocationモジュールによって値が入力されます。これらの変数はライブラリから自動的に各トラッキングコールに含まれます。
変数名 | 型 | 説明 | 例 |
---|---|---|---|
latitude |
String |
最後に記録されたユーザーの位置の緯度 | 32.906119 |
longitude |
String |
最後に記録されたユーザーの位置の経度 | -117.2367 |
location_accuracy |
String |
位置情報の更新 (アップデート) をリクエストする頻度 (high 、 low など) |
high |
location_accuracy_extended |
String |
Location モジュールの精度設定 (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リファレンス
Location モジュールによって使用されるメソッドのリファレンスについては、Tealium SDK for iOS API の TealiumConfig
クラスを参照してください。
このページはお役にたちましたでしょうか?
最終更新日 :: 2022年August月29日