Skip to content

Ubicación de la pista

Aprende a realizar el seguimiento de la ubicación a través del SDK de Braze.

Registro de la ubicación actual

Para obtener la ubicación actual de un usuario, utiliza el método de la API de geolocalización getCurrentPosition() de la API de geolocalización. Esto pedirá inmediatamente al usuario que permita o rechace el seguimiento (a menos que ya lo haya hecho).

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

Ahora, cuando se envían datos a Braze, el SDK puede detectar automáticamente el país del usuario utilizando su dirección IP. Para más información, consulta setLastKnownLocation().

Seguimiento continuo de la ubicación

Para hacer un seguimiento continuo de la ubicación de un usuario durante la carga de una página, utiliza el método de la API de geolocalización watchPosition() de la API de geolocalización. Al llamar a este método, se pedirá inmediatamente al usuario que permita o rechace el seguimiento (a menos que ya lo haya hecho).

Si optan por la adhesión voluntaria, ahora se invocará una devolución de llamada de éxito cada vez que se actualice su ubicación.

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

Registro de la ubicación actual

Aunque el seguimiento continuo esté desactivado, puedes registrar manualmente la ubicación actual del usuario utilizando el método setLastKnownLocation() método.

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

Seguimiento continuo de la ubicación

Para realizar un seguimiento continuo de la ubicación de un usuario, tendrás que declarar la intención de tu aplicación de recopilar datos de ubicación añadiendo al menos uno de los siguientes permisos a tu archivo AndroidManifest.xml.

Tu AndroidManifest.xml debe ser similar al siguiente:

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>

Desactivar el seguimiento continuo

Puedes desactivar el seguimiento continuo en tiempo de compilación o de ejecución.

Para desactivar el seguimiento de ubicación continuo en tiempo de compilación, configura com_braze_enable_location_collection en false en braze.xml:

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

Para desactivar selectivamente el seguimiento de ubicación continuo en tiempo de ejecución, utiliza 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)

Registro de la ubicación actual

Paso 1: Configura tu proyecto

Para habilitar el seguimiento de ubicación, abre tu proyecto de Xcode y selecciona tu aplicación. En la pestaña General, añade el módulo BrazeLocation.

En tu archivo AppDelegate.swift, importa el módulo BrazeLocation en la parte superior del archivo. Añade una instancia de BrazeLocationProvider a la configuración de Braze, asegurándote de que todos los cambios en la configuración se realizan antes de llamar a Braze(configuration:). Consulta Braze.Configuration.Location para ver las configuraciones disponibles.

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
  }

}

En tu archivo AppDelegate.m, importa el módulo BrazeLocation en la parte superior del archivo. Añade una instancia de BrazeLocationProvider a la configuración de Braze, asegurándote de que todos los cambios en la configuración se realizan antes de llamar a Braze(configuration:). Consulta BRZConfigurationLocation para ver las configuraciones disponibles.

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

Paso 2: Registrar la ubicación del usuario

A continuación, registra en Braze la última ubicación conocida del usuario. Los siguientes ejemplos suponen que has asignado la instancia de Braze como variable en tu AppDelegate.

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

Requisitos previos

Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de React Native.

Configuración de la última ubicación conocida

Para establecer manualmente la última ubicación conocida de un usuario, utiliza elsetLastKnownLocationmétodo . Esto resulta útil si recopilas datos de ubicación fuera del SDK de Braze.

1
Braze.setLastKnownLocation(LATITUDE, LONGITUDE, ALTITUDE, HORIZONTAL_ACCURACY, VERTICAL_ACCURACY);
  • En Android,latitude ylongitude son obligatorios. altitude, horizontalAccuracy, yverticalAccuracy son opcionales.
  • En iOS, latitude,longitude yhorizontalAccuracy son obligatorios.altitude yverticalAccuracy son opcionales.

Para garantizar la compatibilidad entre plataformas, proporciona como horizontalAccuracymínimolatitude , longitude, y .

Configuración de un atributo de ubicación personalizado

Para establecer un atributo de ubicación personalizado en un perfil de usuario, utiliza elsetLocationCustomAttributemétodo .

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

Solicitud de inicialización de la ubicación (solo Android)

LlamarequestLocationInitializationdespués de que el usuario conceda los permisos de ubicación para inicializar las características de ubicación de Braze en Android. Este método no es compatible con iOS y no es necesario para las características de geovalla o ubicación de iOS.

1
Braze.requestLocationInitialization();

Geovallas

Las geovallas son compatibles tanto con iOS como con Android. De forma predeterminada, el SDK de Braze puede solicitar y supervisar automáticamente las geovallas cuando la ubicación está disponible. Puedes confiar en esta configuración automática para la mayoría de las integraciones.

Solicitar manual de geovallas

Para solicitar manualmente una actualización de la geovalla para una coordenada GPS específica, utiliza requestGeofences. Está disponible tanto para iOS como para Android. Si utilizas este método, desactiva las solicitudes automáticas de geovallas en tu configuración nativa para que el SDK no sobrescriba tus solicitudes manuales.

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