Skip to content

Seguimiento de ubicación

Aprende a hacer un seguimiento de la ubicación mediante el SDK de Braze.

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

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 no 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);
¿QUÉ TAN ÚTIL FUE ESTA PÁGINA?
New Stuff!