Skip to content


位置情報とジオフェンス

iOS のジオフェンスをサポートするには:

  1. 統合がバックグラウンドプッシュ通知に対応している必要があります。
  2. Braze ジオフェンスを SDK を通じて有効にする必要があります。位置情報の収集を有効にする(暗黙的)か、ジオフェンスの収集を明示的に有効にすることで設定できます。デフォルトでは有効になっていません。

ステップ 1:バックグラウンドプッシュを有効にする

ジオフェンス同期戦略を完全に使用するには、標準のプッシュ統合に加えて、バックグラウンドプッシュを有効にする必要があります。

ステップ 2:ジオフェンスを有効にする

デフォルトでは、ジオフェンスは位置情報の自動収集が有効かどうかに基づいて有効になります。ジオフェンスを有効にするには、Info.plist ファイルを使用します。Braze ディクショナリを Info.plist ファイルに追加します。Braze ディクショナリ内にブール値の EnableGeofences サブエントリを追加し、値を YES に設定します。なお、Braze iOS SDK v4.0.2 より前のバージョンでは、Braze の代わりにディクショナリキー Appboy を使用する必要があります。

また、startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions メソッドを使用して、アプリの起動時にジオフェンスを有効にすることもできます。appboyOptions ディクショナリで、ABKEnableGeofencesKeyYES に設定します。以下に例を示します。

1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
          inApplication:application
      withLaunchOptions:options
      withAppboyOptions:@{ ABKEnableGeofencesKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
                 in:application,
                 withLaunchOptions:launchOptions,
                 withAppboyOptions:[ ABKEnableGeofencesKey : true ])

ステップ 3:Braze のバックグラウンドプッシュを確認する

Braze では、バックグラウンドプッシュ通知を使用してジオフェンスがデバイスと同期されます。iOS のカスタマイズに関する記事に従って、Braze のジオフェンス同期通知を受信したときにアプリケーションで不要なアクションが実行されないようにしてください。

ステップ 4:NSLocationAlwaysUsageDescription を Info.plist に追加する

アプリケーションで位置情報を追跡する必要がある理由の説明を含んだ String 値を使用して、キー NSLocationAlwaysUsageDescription および NSLocationAlwaysAndWhenInUseUsageDescriptioninfo.plist に追加します。iOS 11 以降では両方のキーが必要です。 この説明は、システムの位置情報プロンプトで許可がリクエストされるときに表示されるため、ユーザーに位置情報の追跡の利点を明確に説明する必要があります。

ステップ 5:ユーザーに許可をリクエストする

ジオフェンス機能は、位置情報に対する許可 Always が付与されている場合にのみ機能します。

位置情報許可 Always をリクエストするには、次のコードを使用します。

1
2
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
1
2
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()

ステップ 6:ダッシュボードでジオフェンスを有効にする

iOS では、1 つのアプリに保存できるジオフェンスは 20 個までとなっています。位置情報を使用すると、これら 20 個の使用可能なジオフェンススロットの一部が使用されます。アプリ内の他のジオフェンス関連機能への偶発的または不要な中断を防ぐため、位置情報ジオフェンスはダッシュボード上で個々のアプリに対して有効にする必要があります。

位置情報が正しく動作するには、アプリが利用可能なジオフェンススポットをすべて使用していないことも確認する必要があります。

ロケーションページからジオフェンスを有効にする

Braze のロケーションページにあるジオフェンスのオプション。

設定ページからジオフェンスを有効にする

Braze の設定ページにあるジオフェンスのチェックボックス。

自動ジオフェンスリクエストを無効にする

iOS SDK バージョン 3.21.3 以降では、ジオフェンスが自動的にリクエストされないようにすることができます。これを行うには、Info.plist ファイルを使用します。Braze ディクショナリを Info.plist ファイルに追加します。Braze ディクショナリ内にブール値の DisableAutomaticGeofenceRequests サブエントリを追加し、値を YES に設定します。

startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions メソッドを使用して、アプリの起動時に自動ジオフェンスリクエストを無効にすることもできます。appboyOptions ディクショナリで、ABKDisableAutomaticGeofenceRequestsKeyYES に設定します。以下に例を示します。

1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
          inApplication:application
      withLaunchOptions:options
      withAppboyOptions:@{ ABKDisableAutomaticGeofenceRequestsKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
                 in:application,
                 withLaunchOptions:launchOptions,
                 withAppboyOptions:[ ABKDisableAutomaticGeofenceRequestsKey : true ])

このオプションの使用を選択した場合、機能が動作するよう、ジオフェンスを手動でリクエストする必要があります。

ジオフェンスの手動リクエスト

Braze SDK がバックエンドに対して監視対象のジオフェンスをリクエストすると、ユーザーの現在の位置情報がレポートされ、レポートされた位置情報に基づいて最も関連性が高いと判断されたジオフェンスが受信されます。ジオフェンスの更新には、各セッションで 1 回というレート制限があります。

SDK でレポートされる位置情報をコントロールして、最も関連性の高いジオフェンスを受信できるようにするため、iOS SDK バージョン 3.21.3 以降では、位置の緯度と経度を指定することでジオフェンスを手動でリクエストできるようになっています。この方法を使用する場合は、自動ジオフェンスリクエストを無効にすることをお勧めします。そのためには、次のコードを使用します。

1
2
[[Appboy sharedInstance] requestGeofencesWithLongitude:longitude
                                              latitude:latitude];
1
Appboy.sharedInstance()?.requestGeofences(withLongitude: longitude, latitude: latitude)
New Stuff!