Monitoramento de localização
Saiba como rastrear o local por meio do Braze SDK.
Registro do local atual
Mesmo que o monitoramento contínuo esteja desativado, é possível registrar manualmente o local atual do usuário usando o 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)
}
Monitoramento contínuo da localização
A partir do Android Marshmallow, é necessário pedir aos usuários que aceitem explicitamente o monitoramento de localização. Assim que o fizerem, o Braze poderá iniciar o monitoramento de sua localização no início da próxima sessão. Isso é diferente das versões anteriores do Android, em que era necessário apenas declarar as permissões de local em seu site AndroidManifest.xml
.
Para rastrear continuamente a localização de um usuário, será necessário declarar a intenção do app de coletar dados de localização adicionando pelo menos uma das seguintes permissões ao arquivo AndroidManifest.xml
.
Permissão | Descrição |
---|---|
ACCESS_COARSE_LOCATION |
Usa o provedor não-GPS mais eficiente em termos de bateria (como uma rede doméstica). Normalmente, isso é suficiente para a maioria das necessidades de dados locais. No modelo de permissões de tempo de execução, a concessão de permissão de local autoriza implicitamente a coleta de dados de localização fina. |
ACCESS_FINE_LOCATION |
Inclui dados de GPS para um local mais preciso. No modelo de permissões de tempo de execução, a concessão de permissão de local também abrange o acesso fino ao local. |
Seu AndroidManifest.xml
deve ser semelhante ao seguinte:
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>
Desativar o rastreamento contínuo
É possível desativar o rastreamento contínuo em tempo de compilação ou em tempo de execução.
Para desativar o monitoramento contínuo de localização em tempo de compilação, defina com_braze_enable_location_collection
como false
em braze.xml
:
1
<bool name="com_braze_enable_location_collection">false</bool>
Para desativar seletivamente o monitoramento contínuo de localização em tempo de execução, use 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 do local atual
Etapa 1: Configure seu projeto
Ao usar os recursos de localização do Braze, seu aplicativo é responsável por solicitar autorização para usar os serviços de localização. Não deixe de acessar Apple Developer: Solicitação de autorização para serviços de local do usuário.
Para ativar o monitoramento de localização, abra seu projeto Xcode e selecione seu app. Na guia General (Geral ), adicione o módulo BrazeLocation
.
Em seu arquivo AppDelegate.swift
, importe o módulo BrazeLocation
na parte superior do arquivo. Adicione uma instância de BrazeLocationProvider
à configuração da Braze, conferindo se todas as alterações na configuração estão feitas antes de chamar Braze(configuration:)
. Consulte Braze.Configuration.Location
para ver as configurações disponíveis.
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
}
}
Em seu arquivo AppDelegate.m
, importe o módulo BrazeLocation
na parte superior do arquivo. Adicione uma instância de BrazeLocationProvider
à configuração da Braze, conferindo se todas as alterações na configuração estão feitas antes de chamar Braze(configuration:)
. Consulte BRZConfigurationLocation
para ver as configurações disponíveis.
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
Etapa 2: Registre o local do usuário
Em seguida, registre o último local conhecido do usuário no Braze. Os exemplos a seguir pressupõem que você atribuiu a instância do Braze como uma variável em seu 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];
Para saber mais, consulte Braze.User.swift
.
Registro do local atual
Para obter o local atual de um usuário, use o método getCurrentPosition()
da API de geolocalização. Isso solicitará imediatamente que o usuário permita ou não o rastreamento (a menos que já o tenha feito).
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);
Agora, quando os dados são enviados ao Braze, o SDK pode detectar automaticamente o país do usuário usando seu endereço IP. Para saber mais, consulte setLastKnownLocation().
Monitoramento contínuo da localização
Para monitorar continuamente o local de um usuário durante o carregamento de uma página, use o método watchPosition()
da API de geolocalização. A chamada desse método solicitará imediatamente que o usuário permita ou não o rastreamento (a menos que já o tenha feito).
Se houver aceitação, um retorno de chamada de sucesso será invocado sempre que o local for atualizado.
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 como desativar o rastreamento contínuo, consulte os documentos para desenvolvedores da Mozilla.