Skip to content

Standort verfolgen

Lernen Sie, wie Sie Standorte mit dem Braze SDK tracken können.

Aufzeichnung des aktuellen Standorts

Um den aktuellen Standort eines Nutzers:innen zu ermitteln, verwenden Sie die Geolocation APIs getCurrentPosition() Methode. Dadurch wird der Nutzer:in sofort aufgefordert, Tracking zuzulassen oder zu verbieten (sofern er dies nicht bereits getan hat).

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);

Wenn nun Daten an Braze gesendet werden, kann das SDK das Land des Nutzers:innen anhand seiner IP-Adresse automatisch erkennen. Für weitere Informationen siehe setLastKnownLocation().

Kontinuierliches Tracking des Standorts

Um den Standort eines Nutzers während des Ladens einer Seite kontinuierlich zu verfolgen, verwenden Sie die Geolocation API’s watchPosition() Methode. Wenn Sie diese Methode aufrufen, wird der Nutzer:in sofort aufgefordert, das Tracking zuzulassen oder zu verbieten (es sei denn, er hat dies bereits getan).

Bei Opt-in wird nun bei jedem Update des Standorts ein Callback für den Erfolg aufgerufen.

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);

Aufzeichnung des aktuellen Standorts

Auch wenn das kontinuierliche Tracking deaktiviert ist, können Sie den aktuellen Standort der Nutzer:innen manuell mit der Methode setLastKnownLocation() aufzeichnen.

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)
}

Kontinuierliches Standort-Tracking

Um den Standort von Nutzer:innen kontinuierlich zu tracken, müssen Sie die Absicht Ihrer App, Standortdaten zu erfassen, deklarieren, indem Sie mindestens eine der folgenden Berechtigungen zu Ihrer AndroidManifest.xml-Datei hinzufügen.

Berechtigung Beschreibung
ACCESS_COARSE_LOCATION Verwendet den batterieeffizientesten, nicht-GPS-basierten Anbieter (z. B. ein Heimnetzwerk). In der Regel reicht dies für die meisten Anforderungen an Standortdaten aus. Im Rahmen des Laufzeit-Berechtigungsmodells wird durch die Erteilung der Standortberechtigung implizit auch die Erfassung präziser Standortdaten genehmigt.
ACCESS_FINE_LOCATION Enthält GPS-Daten für eine genauere Standortbestimmung. Im Rahmen des Laufzeit-Berechtigungsmodells umfasst die Erteilung der Standortberechtigung auch den Zugriff auf präzise Standortdaten.

Ihre AndroidManifest.xml sollte in etwa so aussehen:

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>

Deaktivieren des kontinuierlichen Trackings

Sie können das kontinuierliche Tracking zur Kompilierungszeit oder zur Laufzeit deaktivieren.

Um das kontinuierliche Standort-Tracking zur Kompilierungszeit zu deaktivieren, setzen Sie com_braze_enable_location_collection in braze.xml auf false:

1
<bool name="com_braze_enable_location_collection">false</bool>

Um das kontinuierliche Standort-Tracking zur Laufzeit selektiv zu deaktivieren, verwenden Sie BrazeConfig:

1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
  .setIsAutomaticLocationCollectionEnabled(false)
  .build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
    .setIsAutomaticLocationCollectionEnabled(false)
    .build()
Braze.configure(this, brazeConfig)

Aufzeichnung des aktuellen Standorts

Schritt 1: Konfigurieren Sie Ihr Projekt

Um das Standort-Tracking zu aktivieren, öffnen Sie Ihr Xcode-Projekt und wählen Sie Ihre App aus. Auf dem Tab Allgemein fügen Sie das Modul BrazeLocation hinzu.

Importieren Sie in Ihrer Datei AppDelegate.swift das Modul BrazeLocation, das sich am Anfang der Datei befindet. Fügen Sie der Braze-Konfiguration eine Instanz von BrazeLocationProvider hinzu. Stellen Sie sicher, dass alle Änderungen an der Konfiguration vor dem Aufruf von Braze(configuration:) vorgenommen werden. Die verfügbaren Konfigurationen finden Sie unter Braze.Configuration.Location.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import UIKit
import BrazeKit
import BrazeLocation

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

  static var braze: Braze? = nil

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    // Setup Braze
    let configuration = Braze.Configuration(apiKey: brazeApiKey, endpoint: brazeEndpoint)
    configuration.logger.level = .info
    configuration.location.brazeLocationProvider = BrazeLocationProvider()
    configuration.location.automaticLocationCollection = true
    configuration.location.geofencesEnabled = true
    configuration.location.automaticGeofenceRequests = true
    let braze = Braze(configuration: configuration)
    AppDelegate.braze = braze

    return true
  }

}

Importieren Sie in Ihrer Datei AppDelegate.m das Modul BrazeLocation, das sich am Anfang der Datei befindet. Fügen Sie der Braze-Konfiguration eine Instanz von BrazeLocationProvider hinzu. Stellen Sie sicher, dass alle Änderungen an der Konfiguration vor dem Aufruf von Braze(configuration:) vorgenommen werden. Die verfügbaren Konfigurationen finden Sie unter BRZConfigurationLocation.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#import "AppDelegate.h"

@import BrazeKit;
@import BrazeLocation;

@implementation AppDelegate

#pragma mark - Lifecycle

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Setup Braze
  BRZConfiguration *configuration =
      [[BRZConfiguration alloc] initWithApiKey:brazeApiKey
                                      endpoint:brazeEndpoint];
  configuration.logger.level = BRZLoggerLevelInfo;
  configuration.location.brazeLocationProvider = [[BrazeLocationProvider alloc] init];
  configuration.location.automaticLocationCollection = YES;
  configuration.location.geofencesEnabled = YES;
  configuration.location.automaticGeofenceRequests = YES;
  Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
  AppDelegate.braze = braze;

  [self.window makeKeyAndVisible];
  return YES;
}

#pragma mark - AppDelegate.braze

static Braze *_braze = nil;

+ (Braze *)braze {
  return _braze;
}

+ (void)setBraze:(Braze *)braze {
  _braze = braze;
}

@end

Schritt 2: Den Standort des Nutzers:innen protokollieren

Als nächstes protokollieren Sie den letzten bekannten Standort des Nutzers:innen in Braze. Die folgenden Beispiele gehen davon aus, dass Sie die Braze-Instanz als Variable in Ihrem AppDelegate zugewiesen haben.

1
2
AppDelegate.braze?.user.setLastKnownLocation(latitude:latitude,
                                             longitude:longitude)
1
2
3
4
5
AppDelegate.braze?.user.setLastKnownLocation(latitude:latitude,
                                             longitude:longitude,
                                             altitude:altitude,
                                             horizontalAccuracy:horizontalAccuracy,
                                             verticalAccuracy:verticalAccuracy)
1
2
3
4
[AppDelegate.braze.user setLastKnownLocationWithLatitude:latitude
                                               longitude:longitude
                                      horizontalAccuracy:horizontalAccuracy];

1
2
3
4
5
6
[AppDelegate.braze.user setLastKnownLocationWithLatitude:latitude
                                               longitude:longitude
                                      horizontalAccuracy:horizontalAccuracy
                                                altitude:altitude
                                        verticalAccuracy:verticalAccuracy];

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das React Native Braze SDK integrieren.

Festlegen des letzten bekannten Standorts

Um den letzten bekannten Standort einer Nutzer:in manuell festzulegen, verwenden Sie bitte diesetLastKnownLocationMethode. Dies ist nützlich, wenn Sie Standortdaten außerhalb des Braze SDK erfassen.

1
Braze.setLastKnownLocation(LATITUDE, LONGITUDE, ALTITUDE, HORIZONTAL_ACCURACY, VERTICAL_ACCURACY);
  • Auf Android sindlatitude longitudeund erforderlich. altitude,horizontalAccuracy undverticalAccuracy sind optional.
  • Unter iOS sind ,latitude longitudehorizontalAccuracy, und erforderlich.altitude undverticalAccuracy sind optional.

Für plattformübergreifende Kompatibilität stellen Sie bitte horizontalAccuracymindestens ,longitude , und zur Verfügunglatitude.

Festlegen eines angepassten Standort-Attributs

Um ein angepasstes Attribut für den Standort in einem Nutzerprofil festzulegen, verwenden Sie bitte diesetLocationCustomAttributeMethode.

1
Braze.setLocationCustomAttribute("favorite_restaurant", 40.7128, -74.0060, optionalCallback);

Anfrage der Standortinitialisierung (nur Android)

Bitte rufen Sie diese FunktionrequestLocationInitialization auf, nachdem eine Nutzer:in Standortberechtigungen erteilt hat, um die Standort-Features von Braze auf Android zu initialisieren. Diese Methode wird unter iOS nicht unterstützt und ist für Geofence- oder Standort-Features unter iOS nicht erforderlich.

1
Braze.requestLocationInitialization();

Geofences

Geofences werden sowohl auf iOS als auch auf Android unterstützt. Standardmäßig kann das Braze SDK automatisch Geofences anfragen und überwachen, wenn der Standort verfügbar ist. Bei den meisten Integrationen können Sie sich auf diese automatische Konfiguration verlassen.

Geofencing manuell anfordern

Um manuell ein Geofence-Update für eine bestimmte GPS-Koordinate anzufordern, verwenden Sie bitterequestGeofences . Dies ist sowohl für iOS als auch für Android verfügbar. Wenn Sie diese Methode verwenden, deaktivieren Sie bitte die automatischen Geofence-Anfragen in Ihrer nativen Konfiguration, damit das SDK Ihre manuellen Anfragen nicht überschreibt.

1
Braze.requestGeofences(LATITUDE, LONGITUDE);
New Stuff!