|
| 1 | +--- |
| 2 | +title: Bloomreach Engagement Destination |
| 3 | +rewrite: true |
| 4 | +id: 5d4d88bbd02041672e51e3ca |
| 5 | +--- |
| 6 | +[Bloomreach Engagement](https://www.bloomreach.com/en/products/engagement?spz=learn_orig/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a Customer Data & Experience Platform (CDXP) which creates a unified source of customer intelligence in real-time, ready for immediate activation using its own built‑in omnichannel marketing systems (web, email, push, mobile, text messages,etc.) powered by customer-centric analytics and artificial intelligence (product recommendations and predictions). |
| 7 | + |
| 8 | +This destination is maintained by Bloomreach Engagement. For any issues with the destination, contact [the Bloomreach Engagement Support team ](mailto:[email protected]). |
| 9 | + |
| 10 | +## Getting Started |
| 11 | + |
| 12 | +1. From the Segment web app, click **Catalog**. |
| 13 | +2. Search for "Bloomreach Engagement" in the Catalog, select it, and choose which of your sources to connect the destination to. |
| 14 | +3. Create a [public API group](https://documentation.bloomreach.com/engagement/reference/authentication){:target="_blank”} for your Segment integration in your Bloomreach Engagement project. Don't forget to set the appropriate [group permissions](https://documentation.bloomreach.com/engagement/reference/authentication#using-the-api-groups){:target="_blank”} so you can receive events and customer updates. |
| 15 | +4. Fill in the "API Base URL", "API key" and "Project Token" into your Segment Settings UI. You can find all of the above in the API settings page of your Bloomreach Engagement project. |
| 16 | +5. Enter your Bloomreach Engagement hard ID and soft ID names into the corresponding fields to specify Segment's userId and anonymousId mapping into your Bloomreach Engagement ID structure. |
| 17 | + |
| 18 | + |
| 19 | +## Common fields |
| 20 | + |
| 21 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Common fields](/docs/connections/spec/common/) are. |
| 22 | + |
| 23 | +The `userId` and `anonymousId` common fields are used for all types of calls to identify the user in Bloomreach Engagement. Mapping of the IDs is based on the destination settings: |
| 24 | + |
| 25 | +| Segment | Bloomreach Engagement | |
| 26 | +| -------- | -------- | |
| 27 | +| userId | Bloomreach Engagement hard ID (e.g registered) | |
| 28 | +| anonymousId | Bloomreach Engagement soft ID (e.g cookie) | |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +Other common fields are used only for `track`, `page` and `screen` calls which are translated into Bloomreach Engagement events. The following common fields are mapped to Bloomreach Engagement: |
| 33 | + |
| 34 | + |
| 35 | +| Segment | Bloomreach Engagement | |
| 36 | +| -------- | -------- | |
| 37 | +| timestamp | timestamp (string date is parsed to unix timestamp) | |
| 38 | +| context: app, device, os, screen, referrer, campaign, user_agent, location | event properties (fields that contain child objects are flattened) | |
| 39 | + |
| 40 | + |
| 41 | +## Page |
| 42 | + |
| 43 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Page method](/docs/connections/spec/page/) does. |
| 44 | + |
| 45 | +Page calls will be sent to Bloomreach Engagement as a `page_visit` event with the `properties` field mapped into event properties and the `name` field mapped into the `page_name` property. |
| 46 | + |
| 47 | +Example of page call: |
| 48 | + |
| 49 | +```js |
| 50 | +analytics.page("Home", { |
| 51 | + url: "https://Bloomreach Engagement.com", |
| 52 | + referrer: "http://google.com" |
| 53 | +}) |
| 54 | +``` |
| 55 | + |
| 56 | +This `page` call is translated into a `page_visit` event with the following properties: |
| 57 | + |
| 58 | +```js |
| 59 | +"page_name": "Home", |
| 60 | +"url": "https://Bloomreach Engagement.com", |
| 61 | +"referrer": "http://google.com" |
| 62 | +``` |
| 63 | + |
| 64 | +An optional event `session_ping` can be tracked along with `page_visit` for [automatic session tracking](https://documentation.bloomreach.com/engagement/docs/system-events#section-first-session-session-start-session-end){:target="_blank”}. You can adjust this behavior in your Bloomreach Engagement destination settings by toggling on and off the 'Track session ping' settings. The Bloomreach Engagement soft ID must be set to `cookie` and the `anonymousId` field must be present in the `page` call for session events to work. |
| 65 | + |
| 66 | + |
| 67 | +## Screen |
| 68 | + |
| 69 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Screen method](/docs/connections/spec/screen/) does. |
| 70 | + |
| 71 | +Screen calls will be sent to Bloomreach Engagement as a `screen_visit` event with the `properties` field mapped into event properties and the`name` field mapped into the `screen_name` property. |
| 72 | + |
| 73 | +Example of screen call: |
| 74 | + |
| 75 | +```objc |
| 76 | +[[SEGAnalytics sharedAnalytics] screen:@"Home" |
| 77 | + properties:@{ @"Feed Type": @"private" }]; |
| 78 | +``` |
| 79 | +
|
| 80 | +This `screen` call is translated into a `screen_visit` event with the following properties: |
| 81 | +
|
| 82 | +```objc |
| 83 | +"screen_name": "Home", |
| 84 | +"Feed Type": "private" |
| 85 | +``` |
| 86 | + |
| 87 | +An optional event `session_ping` can be tracked along with `screen_visit` for [automatic session tracking](https://documentation.bloomreach.com/engagement/docs/system-events#section-first-session-session-start-session-end){:target="_blank”}. You can adjust this behavior in your Bloomreach Engagement destination settings by toggling on and off the 'Track session ping' settings. The Bloomreach Engagement soft ID must be set to `cookie` for session events to work and `anonymousId` field must be present in the `screen` call for session events to work. |
| 88 | + |
| 89 | +## Track |
| 90 | + |
| 91 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Track method](/docs/connections/spec/track/) does. |
| 92 | + |
| 93 | +Track calls will be sent to Bloomreach Engagement as events under name provided in the event field. The `properties` field will be mapped into event properties (objects will be flattened using underscore). |
| 94 | + |
| 95 | +Example of track call: |
| 96 | + |
| 97 | +```js |
| 98 | +analytics.track("Registered", { |
| 99 | + plan: "Pro Annual", |
| 100 | + accountType: "Facebook" |
| 101 | +}); |
| 102 | +``` |
| 103 | + |
| 104 | +This track call is translated into a `Registered` event with the following properties: |
| 105 | + |
| 106 | +```js |
| 107 | +"plan": "Pro Annual", |
| 108 | +"accountType" : "Facebook" |
| 109 | +``` |
| 110 | + |
| 111 | +## Identify |
| 112 | + |
| 113 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. |
| 114 | + |
| 115 | +Identify calls will be sent to Bloomreach Engagement as customer updates with traits set as customer properties. |
| 116 | + |
| 117 | +Example of identify call: |
| 118 | + |
| 119 | +```js |
| 120 | +analytics.identify("userId123", { |
| 121 | + name: "John Doe", |
| 122 | + |
| 123 | + address: { |
| 124 | + city: "New York", |
| 125 | + country: "USA" |
| 126 | + } |
| 127 | +}); |
| 128 | +``` |
| 129 | + |
| 130 | +This identify call is translated into a customer update for user with Bloomreach Engagement hard id `userId123` with properties: |
| 131 | + |
| 132 | +```js |
| 133 | +"name": "John Doe", |
| 134 | + |
| 135 | +"address_city": "New York", |
| 136 | +"address_country": "USA", |
| 137 | +``` |
| 138 | + |
| 139 | +## Alias |
| 140 | + |
| 141 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Alias method](/docs/connections/spec/alias/) does. |
| 142 | + |
| 143 | +The alias call can be used to merge two user identities and their data to one. The `previousId` field should always contain a previously used `anonymousId`, as merging users by specifying two `userIds` is not supported. Sending an alias event with `previousId` and no `userId` will cause the event to be ignored. Note that users are also merged when any call specifies both a userId and an anonymousId, which previously belonged to two separate users. |
| 144 | + |
| 145 | +Example of alias call: |
| 146 | + |
| 147 | +```js |
| 148 | +analytics.alias("507f191e81"); |
| 149 | +``` |
| 150 | +## Group |
| 151 | + |
| 152 | +If you have not had a chance to review the Segment spec, take a look to understand what the [Group method](/docs/connections/spec/group/) does. |
| 153 | + |
| 154 | +Group calls will be sent to Bloomreach Engagement as customer updates with group traits as customer properties prefixed with `group_` and `groupId` into `group_id`. For example: |
| 155 | + |
| 156 | +```js |
| 157 | +analytics.group("123", { |
| 158 | + name: "Bloomreach Engagement", |
| 159 | + industry: "Technology" |
| 160 | +}); |
| 161 | +``` |
| 162 | + |
| 163 | +will be translated into a customer update with properties: |
| 164 | + |
| 165 | +```js |
| 166 | +"group_id": "123", |
| 167 | +"group_name": "Bloomreach Engagement", |
| 168 | +"group_industry": "Technology", |
| 169 | +``` |
| 170 | + |
| 171 | +Disclaimer: This is a beta version of group tracking and might be subject to change. |
| 172 | + |
| 173 | +## General |
| 174 | + |
| 175 | +### Nested Objects |
| 176 | +Values that contain nested objects will be flattened using underscore. |
| 177 | + |
| 178 | +For example: |
| 179 | +```js |
| 180 | +analytics.identify('userId123', { |
| 181 | + address: { |
| 182 | + city: "New York", |
| 183 | + country: "USA" |
| 184 | + } |
| 185 | +}); |
| 186 | +``` |
| 187 | +The properties would be sent as: |
| 188 | +```js |
| 189 | +"address_city": "New York", |
| 190 | +"address_country": "USA", |
| 191 | +``` |
0 commit comments