位置モジュール
イベントのデバイスの位置情報と興味のある地点のジオフェンスの追加機能を提供します。
位置モジュールは、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プロジェクトで、「ファイル」>「Swift Packages」>「パッケージの依存関係を追加」を選択します。
- リポジトリのURL
https://github.com/tealium/tealium-swift
を入力します。 - バージョンルールを構成します。通常、
次のメジャーバージョンまで
が推奨されます。現在のTealium Swiftライブラリのバージョンがリストに表示されない場合は、Swiftパッケージキャッシュをリセットしてください。 - Xcodeプロジェクトの各アプリターゲットのFrameworks > Libraries & Embedded Contentの下にあるリストから
Location
モジュールを選択し、追加します。
iOSのSwift Package Managerのインストールについて詳しくはこちらをご覧ください。
CocoaPods
CocoaPodsを使用して位置モジュールをインストールするには、Podfileに次のポッドを追加します:
pod 'tealium-swift/Location'
iOSのCocoaPodsのインストールについて詳しくはこちらをご覧ください。
Carthage
Carthageを使用して位置モジュールをインストールするには:
-
Xcodeのアプリターゲットの一般構成ページに移動します。
-
埋め込みバイナリセクションに次のフレームワークを追加します:
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
これらのキーが存在しない場合、位置情報のリクエストはすぐに失敗します。位置情報の認証を要求する詳細をご覧ください。
現在の実装でまだ位置情報の認証を要求していない場合は、LocationモジュールのAPIメソッドrequestAuthorization()
をTealiumのコンプリーションコールバック内で使用できます。
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リファレンス
Locationモジュールで使用されるメソッドのリファレンスについては、Tealium SDK for iOS APIのLocationModule
クラスを参照してください。
最終更新日 :: 2024年March月29日