iOS SDK 15.6.7,
Android SDK 15.5.3,
Hello Screen Dynamic States,
Bluedot Cordova plugin 4.0.1,
Bluedot Xamarin Android wrapper 15.5.2,
Bluedot Xamarin iOS wrapper 15.6.6,
Bluedot React Native wrapper 2.3.0,
With the combination of Braze’s leading mobile engagement platform and Bluedot Innovation’s best in class location technology, mobile engagement is taken to the next level. Combine the power of Braze with the precision and scalability of Bluedot’s location services to accelerate growth, drive loyalty engagement and revenue in your app and beyond.
Bluedot’s location marketing platform delivers a solution 20x more accurate, with negligible battery drain, unlimited locations and best in class privacy making it the only option that can deliver location-based 1:1 segmentation no matter how large your audience is.
Connectivity is at the heart of this new chapter for mobile. But it’s more than just the ability to engage. It’s also about connecting to mobile users with discernment and insight. That’s what mobile engagement is about, and it’s exciting what we can now do.
The is an SDK-to-SDK integration and you’ll need to install both the Bluedot Point SDK and Braze Appboy SDK. Location events generated by the Bluedot Point SDK will be passed to the AppBoy SDK as Custom Events (Android | iOS) and Braze will handle the User Segmentation based on your Braze Campaign configuration, and sending notifications to your users.
Creating a Project is your first step. All your Zones and all geofeatures exist within a Project. More information on adding and managing Bluedot Canvas project can be found here.
You’ll need to create a Zone before you can start adding in specific Geofeatures. Each Zone can have one or many Geofeatures – that’s up to you and your use-case. More information on adding and managing Zones can be found here.
If you have just registered for a Braze account select the Add your app button. If you have an existing account then either choose the app you wish to use, or select the New app button in the upper right corner of the dashboard to create a new one. More information on setting up an App can be found here.
It is vital to set up the APNs certificate for iOS and GCM API Key for Android platforms, to utilize the push based automated messages in Braze engagement platform.
More information
More information on adding and updating your Braze App can be found here.
The application needs to be configured to send custom events to Braze when a Bluedot entry or exit trigger occurs.
The Android/Java implementation for passing up entry events is as follows, using the onZoneEntryEvent callback:
override fun onZoneEntryEvent(entryEvent: ZoneEntryEvent, context: Context) { println("Zone ${entryEvent.zoneInfo.zoneName}, fence ${entryEvent.fenceInfo.name} entered at: ${Date()}") val eventProperties = AppboyProperties() eventProperties.addProperty("zone_id", entryEvent.zoneInfo.zoneId) eventProperties.addProperty("zone_name", entryEvent.zoneInfo.zoneName) eventProperties.addProperty("latitude", entryEvent.locationInfo.latitude) eventProperties.addProperty("longitude", entryEvent.locationInfo.longitude) eventProperties.addProperty("fence_id", entryEvent.fenceInfo.id) eventProperties.addProperty("fence_name", entryEvent.fenceInfo.name) entryEvent.zoneInfo.getCustomData()?.forEach { data -> eventProperties.addProperty(data.key, data.value) } Appboy.getInstance(context).logCustomEvent(customEventEntry, eventProperties) }
To pass up Bluedot exit triggers, a similar code should be added for the onZoneExitEvent callback.
override fun onZoneExitEvent(exitEvent: ZoneExitEvent, context: Context) { println("Zone ${exitEvent.zoneInfo.zoneName}, fence ${exitEvent.fenceInfo.name} exited at: ${Date()}") val eventProperties = AppboyProperties() eventProperties.addProperty("zone_id", exitEvent.zoneInfo.zoneId) eventProperties.addProperty("zone_name", exitEvent.zoneInfo.zoneName) eventProperties.addProperty("dwellTime", exitEvent.dwellTime) eventProperties.addProperty("fence_id", exitEvent.fenceInfo.id) eventProperties.addProperty("fence_name", exitEvent.fenceInfo.name) exitEvent.zoneInfo.getCustomData()?.forEach { data -> eventProperties.addProperty(data.key, data.value) } Appboy.getInstance(context).logCustomEvent(customEventExit, eventProperties) }
The Swift implementation for passing up entry events is as follows, using the didEnterZone callback:
func didEnterZone(_ enterEvent: BDZoneEntryEvent) { // Name the custom event let customEventName = "bluedot_entry" // Map the Location and Bluedot Zone attributes into a properties dictionary var properties = [ "zone_id": "\(enterEvent.zone().id!)", "zone_name": "\(enterEvent.zone().name!)", "latitude": "\(enterEvent.location.latitude)", "longitude": "\(enterEvent.location.longitude)", "speed": "\(enterEvent.location.speed)", "bearing": "\(enterEvent.location.bearing)", "timestamp": "\(enterEvent.location.timestamp!)" ] // Map the Custom Data attributes into properties if let customData = enterEvent.zone().customData, !customData.isEmpty { customData.forEach { data in properties["\(data.key)"] = "\(data.value)"} } // Log the Custom Event in Appboy Appboy.sharedInstance()?.logCustomEvent(customEventName, withProperties: properties ) } To pass up Bluedot exit triggers, a similar code should be added for the didExitZone callback.
Android – https://github.com/Bluedot-Innovation/PointSDK-BrazeIntegrationExample-Android
iOS – https://github.com/Bluedot-Innovation/PointSDK-BrazeSDK-IntegrationExample-iOS