Emplacement/localisation
Découvrez comment suivre l’emplacement/localisation à l’aide du SDK de Braze.
Enregistrement de l’emplacement/localisation actuel
Même si le suivi continu est désactivé, vous pouvez enregistrer manuellement l’emplacement/localisation actuel de l’utilisateur à l’aide de la méthode setLastKnownLocation()
méthode.
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)
}
Suivi continu de l’emplacement/localisation
À partir d’Android Marshmallow, vous devez demander à vos utilisateurs d’accepter explicitement l’emplacement/localisation. Une fois qu’ils l’ont fait, Braze peut commencer à suivre leur emplacement/localisation au début de la session suivante. Contrairement aux versions antérieures d’Android, où il suffisait de déclarer les autorisations d’emplacement/localisation sur votre site AndroidManifest.xml
.
Pour suivre en permanence l’emplacement/localisation d’un utilisateur, vous devrez déclarer l’intention de votre application de collecter des données d’emplacement/localisation en ajoutant au moins l’une des autorisations suivantes à votre fichier AndroidManifest.xml
.
Autorisation | Description |
---|---|
ACCESS_COARSE_LOCATION |
Utilise le fournisseur d’accès non GPS le plus économe en batterie (réseau domestique, par exemple). En général, cela suffit pour répondre à la plupart des besoins en matière de données d’emplacement/localisation. Dans le cadre du modèle de permissions d’exécution, l’octroi d’une permission d’emplacement/localisation autorise implicitement la collecte de données d’emplacement/localisation fines. |
ACCESS_FINE_LOCATION |
Inclut des données GPS pour une localisation plus précise. Dans le cadre du modèle d’autorisations d’exécution, l’octroi d’une autorisation d’emplacement/localisation couvre également l’accès à l’emplacement/localisation fin. |
Votre site AndroidManifest.xml
devrait ressembler à ce qui suit :
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>
Désactiver le suivi continu
Vous pouvez désactiver le suivi continu au moment de la compilation ou de l’exécution.
Pour désactiver le suivi continu de l’emplacement/localisation au moment de la compilation, définissez com_braze_enable_location_collection
sur false
dans braze.xml
:
1
<bool name="com_braze_enable_location_collection">false</bool>
Pour désactiver de manière sélective le suivi continu de l’emplacement/localisation au moment de l’exécution, utilisez l’option 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)
Enregistrement de l’emplacement/localisation actuel
Étape 1 : Configurez votre projet
Lors de l’utilisation des fonctionnalités d’emplacement/localisation de Braze, il incombe à votre application de demander l’autorisation d’utiliser les services de localisation. Ne manquez pas de consulter le site Apple Developer : Demande d’autorisation pour les services d’emplacement/localisation de l’utilisateur.
Pour activer l’emplacement/localisation, ouvrez votre projet Xcode et sélectionnez votre appli. Dans l’onglet Général, ajoutez le module BrazeLocation
.
Dans votre fichier AppDelegate.swift
, importez le module BrazeLocation
au début du fichier. Ajoutez une instance BrazeLocationProvider
à la configuration de Braze, en veillant à ce que toutes les modifications apportées à la configuration soient effectuées avant d’appeler Braze(configuration:)
. Consultez le site Braze.Configuration.Location
pour connaître les configurations 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
}
}
Dans votre fichier AppDelegate.m
, importez le module BrazeLocation
au début du fichier. Ajoutez une instance BrazeLocationProvider
à la configuration de Braze, en veillant à ce que toutes les modifications apportées à la configuration soient effectuées avant d’appeler Braze(configuration:)
. Consultez le site BRZConfigurationLocation
pour connaître les configurations 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
Étape 2 : Enregistrer l’emplacement/localisation de l’utilisateur
Ensuite, enregistrez dans Braze le dernier emplacement/localisation connu de l’utilisateur. Les exemples suivants supposent que vous avez assigné l’instance de Braze en tant que variable dans votre site 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];
Pour plus d’informations, voir Braze.User.swift
.
Enregistrement de l’emplacement/localisation actuel
Pour obtenir l’emplacement/localisation actuel d’un utilisateur, utilisez la méthode de l’API géolocalisation getCurrentPosition()
de l’API de géolocalisation. L’utilisateur sera immédiatement invité à autoriser ou à refuser le suivi (à moins qu’il ne l’ait déjà fait).
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);
Désormais, lorsque des données sont envoyées à Braze, le SDK peut automatiquement détecter le pays de l’utilisateur à l’aide de son adresse IP. Pour plus d’informations, voir setLastKnownLocation().
Suivi continu de l’emplacement/localisation
Pour suivre en continu l’emplacement/localisation d’un utilisateur pendant le chargement d’une page, utilisez la méthode de géolocalisation de l’API watchPosition()
de l’API de géolocalisation. L’appel de cette méthode invitera immédiatement l’utilisateur à autoriser ou non le suivi (à moins qu’il ne l’ait déjà fait).
En cas d’abonnement, un rappel de succès sera désormais invoqué chaque fois que leur emplacement/localisation sera mis à jour.
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);
Pour savoir comment désactiver le suivi continu, consultez la documentation destinée aux développeurs de Mozilla.