Skip to content


Locais e geofences

Para oferecer geofences para iOS:

  1. Sua integração deve suportar notificações por push em segundo plano.
  2. É preciso ativar as geofences da Braze pelo SDK, seja implicitamente (com a ativação da coleta de local) ou explicitamente (com a ativação da coleta de geofence). Elas não estão ativadas por padrão.

Etapa 1: ativar push em segundo plano

Para usar completamente nossa estratégia de sincronização de geofences, você deve ter push em segundo plano ativado, além de completar a integração padrão de push.

Etapa 2: ativar geofences

Por padrão, as geofences são ativadas se a coleta automática de localização estiver ativada. Você pode ativar geofences usando o arquivo Info.plist. Adicione o dicionário Braze ao seu arquivo Info.plist. No dicionário Braze, adicione a subentrada booleana EnableGeofences e defina o valor como YES. Note que, antes do SDK da Braze para iOS v4.0.2, a chave do dicionário Appboy deve ser usada no lugar de Braze.

Você também pode ativar geofences no momento da inicialização do app usando o método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. No dicionário appboyOptions, defina ABKEnableGeofencesKey como YES. Por exemplo:

1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
          inApplication:application
      withLaunchOptions:options
      withAppboyOptions:@{ ABKEnableGeofencesKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
                 in:application,
                 withLaunchOptions:launchOptions,
                 withAppboyOptions:[ ABKEnableGeofencesKey : true ])

Etapa 3: verificar o push em segundo plano da Braze

A Braze sincroniza geofences com dispositivos usando notificações por push em segundo plano. Siga o artigo de personalização do iOS para garantir que seu aplicativo não tome nenhuma ação indesejada ao receber notificações de sincronização de geofence da Braze.

Etapa 4: adicionar NSLocationAlwaysUsageDescription ao seu Info.plist

Adicione a chave NSLocationAlwaysUsageDescription e NSLocationAlwaysAndWhenInUseUsageDescription ao seu info.plist com um valor String que tenha uma descrição do motivo pelo qual seu app precisa rastrear a localização. Ambas as chaves são exigidas pelo iOS 11 ou posterior. Esta descrição será exibida quando o prompt de localização do sistema solicitar autorização e deve explicar claramente os benefícios do monitoramento de localização para seus usuários.

Etapa 5: solicitar autorização do usuário

O recurso de geofences só funciona enquanto a autorização de localização Always for concedida.

Para solicitar autorização de localização Always, use o seguinte código:

1
2
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
1
2
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()

Etapa 6: ativar geofences no dashboard

O iOS permite armazenar até 20 geofences para um determinado app. O uso das localizações consumirá alguns desses 20 slots de geofence disponíveis. Para evitar interrupções acidentais ou indesejadas em outras funcionalidades relacionadas a geofence no seu app, os geofences de local devem ser ativados para apps individuais no dashboard.

Para que as localizações funcionem corretamente, confira também se seu app não está usando todos os slots de geofence disponíveis.

Ativar geofences na página de locais:

As opções de geofence na página de localizações da Braze.

Ativar geofences na página de configurações:

A caixa de seleção de geofence localizada nas páginas de configurações da Braze.

Desativando solicitações automáticas de geofence

A partir da versão 3.21.3 do SDK do iOS, é possível desativar as geofences para que não sejam solicitadas automaticamente. Você pode fazer isso usando o arquivo Info.plist. Adicione o dicionário Braze ao seu arquivo Info.plist. No dicionário Braze, adicione a subentrada booleana DisableAutomaticGeofenceRequests e defina o valor como YES.

Você também pode desativar solicitações automáticas de geofence na inicialização do app pelo método startWithApiKey:inApplication:withLaunchOptions:withAppboyOptions. No dicionário appboyOptions, defina ABKDisableAutomaticGeofenceRequestsKey como YES. Por exemplo:

1
2
3
4
[Appboy startWithApiKey:@"YOUR-API_KEY"
          inApplication:application
      withLaunchOptions:options
      withAppboyOptions:@{ ABKDisableAutomaticGeofenceRequestsKey : @(YES) }];
1
2
3
4
Appboy.start(withApiKey: "YOUR-API-KEY",
                 in:application,
                 withLaunchOptions:launchOptions,
                 withAppboyOptions:[ ABKDisableAutomaticGeofenceRequestsKey : true ])

Se você optar por usar essa opção, será necessário solicitar manualmente as geofences para que o recurso funcione.

Solicitação manual de geofences

Quando o SDK da Braze solicita geofences para monitorar do backend, ele relata a localização atual do usuário e recebe geofences que são determinadas como sendo otimamente relevantes com base na localização relatada. Há um limite de taxa de uma atualização de geofence por sessão.

Para controlar o local que o SDK relata para fins de receber as geofences mais relevantes, a partir da versão 3.21.3 do SDK do iOS, é possível solicitar manualmente as geofences informando a latitude e longitude de um local. Recomenda-se desativar solicitações automáticas de geofence ao usar esse método. Para fazer isso, use o seguinte código:

1
2
[[Appboy sharedInstance] requestGeofencesWithLongitude:longitude
                                              latitude:latitude];
1
Appboy.sharedInstance()?.requestGeofences(withLongitude: longitude, latitude: latitude)
New Stuff!