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);
Para saber cómo desactivar el seguimiento continuo, consulta la documentación para desarrolladores de Mozilla.
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
A partir de Android Marshmallow, debes pedir a tus usuarios que acepten explícitamente el seguimiento de ubicación. Una vez que lo hagan, Braze puede empezar a seguir su ubicación al inicio de la siguiente sesión. A diferencia de las versiones anteriores de Android, en las que sólo era necesario declarar los permisos de ubicación en tu AndroidManifest.xml.
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.
| Permiso | Descripción |
|---|---|
ACCESS_COARSE_LOCATION |
Utiliza el proveedor no GPS que consuma menos batería (como una red doméstica). Normalmente, esto es suficiente para la mayoría de las necesidades de datos de ubicación. Según el modelo de permisos en tiempo de ejecución, la concesión del permiso de ubicación autoriza implícitamente la recopilación de datos de ubicación fina. |
ACCESS_FINE_LOCATION |
Incluye datos GPS para una ubicación más precisa. Según el modelo de permisos en tiempo de ejecución, conceder permiso de ubicación también cubre el acceso a la ubicación fina. |
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
Al utilizar las características de ubicación de Braze, tu aplicación es responsable de solicitar autorización para utilizar los servicios de ubicación. No dejes de consultar Desarrollador de Apple: Solicitud de autorización a los servicios de ubicación de usuarios.
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];
Para más información, consulta Braze.User.swift.
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,
latitudeylongitudeson obligatorios.altitude,horizontalAccuracy, yverticalAccuracyson opcionales. - En iOS,
latitude,longitudeyhorizontalAccuracyson obligatorios.altitudeyverticalAccuracyson 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);
Editar esta página en GitHub