
AppboyKit(OBJECTIVE-C SDKとも呼ばれます)はサポートが終了しており、Swift SDKに置き換えられました。新機能、バグ修正、セキュリティ更新、テクニカルサポートは提供されません。ただし、メッセージングと分析は引き続き通常どおり機能します。詳しくは、新しいBraze Swift SDKの紹介を参照してください。
位置情報とジオフェンス
iOSのジオフェンスをサポートするには:
- 統合がバックグラウンドプッシュ通知に対応している必要があります。
- Brazeジオフェンスを、SDKを通じて有効にする必要があります。位置情報の収集を有効にする(暗黙的)か、ジオフェンスの収集を明示的に有効にすることで設定できます。デフォルトでは有効になっていません。

iOS 14の時点では、おおよその位置情報の提供許可を選択しているユーザーの場合、ジオフェンスが確実に機能しないことがあります。
ステップ1: バックグラウンドプッシュを有効にする
ジオフェンスの同期戦略を十分に活用するには、標準的なプッシュ統合の完了に加えて、バックグラウンドプッシュを有効にする必要があります。
ステップ2: ジオフェンスを有効にする
デフォルトでは、ジオフェンスは自動位置情報の収集が有効かどうかに基づいて有効になります。Info.plistファイルを使用してジオフェンスを有効にできます。Info.plistファイルにBrazeディクショナリを追加します。Brazeディクショナリ内に、EnableGeofencesブールサブエントリを追加し、値をYESに設定します。なお、Braze iOS SDK v4.0.2より前のバージョンでは、Brazeの代わりにディクショナリキーAppboyを使用する必要があります。
アプリ起動時にstartWithApiKey:inApplication:withLaunchOptions:withAppboyOptionsメソッドを使用してジオフェンスを有効にすることもできます。appboyOptionsディクショナリで、ABKEnableGeofencesKeyをYESに設定します。例:
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKEnableGeofencesKey : @(YES) }];
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKEnableGeofencesKey : true ])
ステップ3: Brazeのバックグラウンドプッシュを確認する
Brazeはバックグラウンドプッシュ通知を使用してジオフェンスをデバイスに同期します。iOSカスタマイズの記事に従って、Brazeのジオフェンス同期通知を受信した際にアプリが意図しないアクションを実行しないようにしてください。
ステップ4: Info.plistにNSLocationAlwaysUsageDescriptionを追加する
info.plistにNSLocationAlwaysUsageDescriptionキーとNSLocationAlwaysAndWhenInUseUsageDescriptionキーを追加し、アプリが位置情報を追跡する必要がある理由を説明するString値を設定します。iOS 11以降では両方のキーが必須です。
この説明は、システムの位置情報プロンプトが認可をリクエストする際に表示されるため、位置情報の追跡のメリットをユーザーに明確に伝える内容にしてください。
ステップ5: ユーザーからの認証リクエスト
ジオフェンス機能は、Alwaysの位置情報認証が許可されている場合にのみ動作します。
Alwaysの位置情報認証をリクエストするには、以下のコードを使用します。
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
ステップ6: ダッシュボードでジオフェンスを有効にする
iOSでは、特定のアプリに対して最大20個のジオフェンスしか保存できません。位置情報を使用すると、利用可能な20個のジオフェンススロットの一部が使用されます。アプリ内の他のジオフェンス関連機能への意図しない中断を防ぐために、位置情報ジオフェンスはダッシュボードで個々のアプリに対して有効にする必要があります。
位置情報が正しく機能するには、アプリが利用可能なジオフェンススポットをすべて使い切っていないことも確認してください。
位置情報ページからジオフェンスを有効にする:

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

自動ジオフェンスリクエストの無効化
iOS SDKバージョン3.21.3以降では、ジオフェンスの自動リクエストを無効にできます。Info.plistファイルを使用してこれを行うことができます。Info.plistファイルにBrazeディクショナリを追加します。Brazeディクショナリ内にDisableAutomaticGeofenceRequestsブールサブエントリを追加し、値をYESに設定します。
また、startWithApiKey:inApplication:withLaunchOptions:withAppboyOptionsメソッドを使用して、アプリ起動時に自動ジオフェンスリクエストを無効にすることもできます。appboyOptionsディクショナリで、ABKDisableAutomaticGeofenceRequestsKeyをYESに設定します。以下に例を示します。
[Appboy startWithApiKey:@"YOUR-API_KEY"
inApplication:application
withLaunchOptions:options
withAppboyOptions:@{ ABKDisableAutomaticGeofenceRequestsKey : @(YES) }];
Appboy.start(withApiKey: "YOUR-API-KEY",
in:application,
withLaunchOptions:launchOptions,
withAppboyOptions:[ ABKDisableAutomaticGeofenceRequestsKey : true ])
このオプションを使用する場合は、機能を動作させるためにジオフェンスを手動でリクエストする必要があります。
ジオフェンスの手動リクエスト
Braze SDKがバックエンドから監視対象のジオフェンスをリクエストする際、ユーザーの現在の位置情報を報告し、報告された位置情報に基づいて最適と判断されたジオフェンスを受信します。ジオフェンスの更新にはセッションごとに1回のレート制限があります。
最も関連性の高いジオフェンスを受信するためにSDKが報告する位置情報を制御するには、iOS SDKバージョン3.21.3以降で、位置情報の緯度と経度を指定してジオフェンスを手動でリクエストできます。この方法を使用する場合は、自動ジオフェンスリクエストを無効にすることをお勧めします。無効にするには、以下のコードを使用してください。
[[Appboy sharedInstance] requestGeofencesWithLongitude:longitude
latitude:latitude];
Appboy.sharedInstance()?.requestGeofences(withLongitude: longitude, latitude: latitude)