トラッキング位置情報の追跡
Braze SDK で位置を追跡する方法について説明します。
現在地を記録する
ユーザーの現在地を取得するには、ジオロケーションAPIの getCurrentPosition()メソッドを使う。これにより、ユーザーはトラッキングを許可するかしないかを即座に選択することになる(すでに許可している場合を除く)。
1
2
3
4
5
6
7
8
9
10
11
12
13
import * as braze from "@braze/web-sdk";
function success(position) {
var coords = position.coords;
braze.getUser().setLastKnownLocation(
coords.latitude,
coords.longitude,
coords.accuracy,
coords.altitude,
coords.altitudeAccuracy
);
}
navigator.geolocation.getCurrentPosition(success);
Brazeにデータが送信される際、SDKはユーザーのIPアドレスから自動的にユーザーの国を検出できるようになった。詳細については、setLastKnownLocation() を参照のこと。
位置情報の追跡を続ける
ページが読み込まれている間、ユーザーの位置情報の追跡を継続的に行うには、geolocation APIの watchPosition()メソッドを使う。このメソッドをトラッキング, 追跡すると、ユーザーにトラッキングの許可または不許可を即座に促す(すでに許可している場合を除く)。
もし彼らがオプトインすれば、位置情報が更新されるたびに成功コールバックが呼び出されるようになる。
1
2
3
4
5
6
7
8
9
10
11
12
function success(position) {
var coords = position.coords;
braze.getUser().setLastKnownLocation(
coords.latitude,
coords.longitude,
coords.accuracy,
coords.altitude,
coords.altitudeAccuracy
);
}
navigator.geolocation.watchPosition(success);
トラッキング追跡を無効にする方法については、Mozilla開発者向けドキュメントを参照のこと。
現在地を記録する
継続的なトラッキングが無効になっている場合でも、ユーザーの現在位置を setLastKnownLocation()メソッドを使う。
1
2
3
4
5
6
Braze.getInstance(context).getCurrentUser(new IValueCallback<BrazeUser>() {
@Override
public void onSuccess(BrazeUser brazeUser) {
brazeUser.setLastKnownLocation(LATITUDE_DOUBLE_VALUE, LONGITUDE_DOUBLE_VALUE, ALTITUDE_DOUBLE_VALUE, ACCURACY_DOUBLE_VALUE);
}
}
1
2
3
Braze.getInstance(context).getCurrentUser { brazeUser ->
brazeUser.setLastKnownLocation(LATITUDE_DOUBLE_VALUE, LONGITUDE_DOUBLE_VALUE, ALTITUDE_DOUBLE_VALUE, ACCURACY_DOUBLE_VALUE)
}
位置情報の追跡を続ける
Android Marshmallowからは、位置情報の追跡を明示的にオプトインするようユーザーに促す必要がある。そうすれば、Brazeは次のセッションの最初に彼らの位置情報の追跡を開始することができる。これは、AndroidManifest.xml で位置情報の権限のみを宣言する必要があった以前のバージョンのAndroidとは異なる。
ユーザーの位置情報を継続的に追跡するには、AndroidManifest.xml ファイルに以下の権限の少なくとも1つを追加して、アプリが位置情報データを収集する意図を宣言する必要がある。
| 権限 | 説明 |
|---|---|
ACCESS_COARSE_LOCATION |
最もバッテリー効率の良い、非GPSプロバイダー(ホームネットワークなど)を使用する。通常、ほとんどの位置情報のニーズにはこれで十分である。実行時権限モデルの下では、位置情報の権限を与えることは、暗黙のうちに、細かい 位置情報のデータ収集を許可することになる。 |
ACCESS_FINE_LOCATION |
より正確な位置情報のためのGPSデータを含む。実行時権限モデルの下では、ロケーション権限の付与は、細かいロケーショ ンアクセスもカバーする。 |
AndroidManifest.xml は次のようになります。
1
2
3
4
5
6
7
8
<manifest ... >
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application ... >
...
</application>
</manifest>
連続トラッキングを無効にする
連続トラッキングは、コンパイル時または実行時に無効にすることができる。
コンパイル時に位置情報の連続追跡を無効にするには、braze.xml でcom_braze_enable_location_collection をfalse に設定する:
1
<bool name="com_braze_enable_location_collection">false</bool>
実行時に位置情報の連続追跡を選択的に無効にするには、次のようにする。 BrazeConfig:
1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
.setIsLocationCollectionEnabled(false)
.build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
.setIsLocationCollectionEnabled(false)
.build()
Braze.configure(this, brazeConfig)
GitHub でこのページを編集