System Events
System events are a group of events available to all Bloomreach Engagement customers by default without the need for a specifically tailored integration. As opposed to custom events, system events should be the same for all Bloomreach Engagement users. This article lists and explains the attributes of these events.
session_start, session_end, first_session
event name | description |
---|---|
session_start | This event is tracked when the customer visits your website. |
session_end | This event is generated 20 minutes after the customer leaves your website or closes the browser tab. Its timestamp is that of the last session ping from the Javascript SDK + 30 seconds. |
first_session | This event is derived from the session_start event. It is tracked when the customer visits your website for the very first time. |
Ghost sessions
A
session_start
andsession_end
(but notpage_visit
) can occasionally be tracked without the customer being active. This can happen when the customer leaves your website running, their computer falls asleep, and then their browser gets randomly active and generates a session ping without anypage_visit
. Read more about this occurrence and our solutions for it in Ghost sessions.
The duration of the session will be the difference between the timestamps of session_start
and session_end
in seconds. The timestamp of the session_end
will have a timestamp within 2 minutes after the customer closed the last page (the 20-minute timeout is ignored for the purpose of calculating the session duration).
In other words, the timeout ensures that if someone closes the page but returns within 20 minutes, this will still be counted as a single session. However, if they do not return, those 20 minutes will not be counted into the session duration.
The events are tracked with the following properties (you can add custom ones using the Javascript SDK's ping options):
Attribute | Description | Example |
---|---|---|
city | Name of the city from which the user is visiting your website. | Little Rock |
state | Name of the state/region from which the user is visiting your website. | Arkansas |
country | Name of the country from which the user is visiting your website. | United States |
latitude | Latitude from which the user is visiting your website. | 80.5293 |
longitude | Longitude from which the user is visiting your website. | 40.5293 |
source | Name of the platform from which the user visited your website. It is determined based on session_ping event URL by comparison with the list of knows referrers. This is done via async-api-worker by a referrer-parser. | |
referrer | URL of the platform from which the user visited your website. | https://facebook.com |
campaign_id | Automatically generated ID of the campaign that brought the customer on your website. More about UTM parameters | |
utm_campaign | UTM code of the campaign that brought the customer on your website. By default, this will be equal to the name of the email node / web push node within the scenario. More about UTM parameters | autumn_campaign |
utm_source | UTM code of the platform from which the user visited your website. More about UTM parameters | facebook_ads |
utm_medium | UTM code of the campaign method used to bring the customer on your website. More about UTM parameters | email / push_notification |
utm_content | UTM code of the content that brought the customer on your website. More about UTM parameters | banner / logolink / product-feed |
utm_term | UTM code based on terms defining the product. Present if the campaign redirected the customer on a particular product page. More about UTM parameters | subject-STREETWEAR-category-Clothing-T-shirts-Everyday-With + sleeve-brand-Nike + men |
gclid | Google Click Identifier is a code added by Google to the website's URL when the customer visits your site through a Google Ad campaign. | EAwaSSdkbEAQ112 |
ip | IP address of the user who visited your website. | 129.233.109.145 |
device | Mobile device from which the user visited your website. If the visit was not through a mobile device then it is marked as "other". | Iphone |
os | Operating system of the device through which the user visited your website. | Android |
browser | Browser through which the user visited your website. | Chrome |
location | URL of the page where the user's session started. | http://eshop.exponea.com/chaz-kangeroo-hoodie.html |
path | Location URL without the domain and parameters | chaz-kangeroo-hoodie.html |
duration (only for session_end) | The amount of time the user spent on the website during this session measured in seconds. | 2415.980319 |
Special
objecttimestamp
event attributeThe
special
objecttimestamp
event attribute denotes a timestamp different to the custom-tracked eventtimestamp
attribute. It might be used, for instance, when you want to urgently change tracking of the timestamp to a different format (for example, string YY-DD-MM format instead of a datetime) because of a specific use case. However, it is recommended to use this solution only temporarily and aim to update the format of the customtimestamp
event attribute to avoid confusion between the two in the long run.
Using Google Analytics ID for
first_session
If you have just started using Bloomreach Engagement and you had tracked your customers using Google Analytics before, you can use the Google Analytics ID to immediately distinguish between old and new customers also in Bloomreach Engagement. You can get the Google Analytics ID from the Google Analytics tracker. Google Analytics ID is written in the form
1.2.286403989.1366364567
and it's last part (behind the last dot) is the timestamp of the first session. In Bloomreach Engagement, you can extract it from Google Analytics ID using an expression and store it as a customer attribute.
Customer's location inaccuracies
As all the attributes that localize the customers are based on their IP, they depend on the quality of the IP infrastructure. The
country
andcity
attributes are generally very reliable, however, thelatitude
andlongitude
are often not (as they are a more precise measure of the customer's location).
session_start custom attributes (deprecated)
session_start
is often complemented with these manually added custom attributes. These attributes are deprecated.
If you want to try to add some of them as custom attributes, read on how to add default attributes to events and set up advanced tracking parameters in the Web tracking article.
Attribute | Description | Example |
---|---|---|
page_load_ms | Number of milliseconds it took to load the page. | 632 |
screen_height | Height of the screen the customer used to visit your webpage. | 900 |
screen_width | Width of the screen the customer used to visit your webpage. | 1440 |
screen_resolution | Resolution of the screen the customer used to visit your webpage. | 1440x900 |
version | Version of a browser the customer used to visit your webpage. | Chrome 75 |
session_start and session_end activity properties
activity
properties are sent by the Javascript SDK in session pings.
Properties | Description |
---|---|
activity | It is set by the SDK when ping.activity is enabled in the configuration. |
created | It is the timestamp of the ping that originally started the session (in other words, it is the session start timestamp). |
last_update | It is the time of the last session_ping received (so stripped of the internal logout timeout before the session_end appears). |
page_visit
page_visit
happens each time the customer opens one of the pages of your website. Note that these events are disabled by default but you can enable them using the track options of the Javascript SDK.
Attribute | Description | Example |
---|---|---|
device | Mobile device from which the user visited the page. If the visit was not through a mobile device then it is marked as "other". | Iphone |
referrer | URL of the platform from which the user visited the page. | https://m.facebook.com |
os | Operating system of the device through which the user visited the page. | Android |
location | URL of the page that the user visited. | http://eshop.exponea.com/chaz-kangeroo-hoodie.html |
browser | Browser through which the user visited the page. | Chrome |
Issues with the tracking
If you are using our CDN page outside of your own domain for giving out surveys/getting consent, no
page_visit
orsession_start
events will be generated.
campaign
The campaign
event is generated when working with emails, SMS/MMS messages, WhatsApp, push notifications, or webhooks.
Attribute | Description | Example | Tracked on |
---|---|---|---|
status | Status of the user's interaction with the campaign mainly based on the SMTP code. | sent / delivered / clicked ... | Email, Transactional email, SMS, Transactional SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification. See below for details. |
campaign_name | Name you gave to the campaign. | September newsletter | Email, Transactional email, SMS, Transactional SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
campaign_id | Automatically-generated ID of the campaign. | 5c584sa5729971a4f992sj9 | Email, Transactional email, SMS, Transactional SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
action_type | Type of action node or communication channel used for the campaign. | email / sms / webhook / ads / browser notification / mobile notification / transactional_email / split / facebook message | Email, Transactional email, SMS, Transactional SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
action_name | Name you gave to the specific action within the campaign scenario. In case of emailing through Email campaigns and not scenarios, action_name is the same as campaign_name. | Shoes email | Email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
action_id | Unique ID number of the action. The number rises proportionally with the order in which you created the action in the scenarios. The action_id of the first action is 1, for the second action it is 2 etc. | 12 | Email, SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
integration_id | Unique ID of the used integration to send the campaign, for example, email provider. | 5bdc56b593bfb20013ea6af3 | Email, Transactional email, SMS, Transactional SMS, Ads |
integration_name | The name of the used integration | / | Email, Transactional email, Ads |
integration_type | The type of the Ads integration | Adform, ... | Ads |
campaign_policy | Name of the policy used in the campaign shown to the particular user. More on policy | default | Email, SMS, Webhook, Browser Push Notification, Mobile Push Notification |
consent_category | Name of the consent category used with the campaign, or simply General Consent | General Consent | Email, Transactional email, SMS, Transactional SMS, Webhook, Ads, Browser Push Notification, Mobile Push Notification |
subject | Custom-given subject of the email sent in the campaign. | Autumn Collection | Email, Transactional email, Browser Push Notification, Mobile Push Notification |
language | Language used in the campaign shown to the particular user. | sk | Email, Transactional email, SMS, Transactional SMS, Browser Push Notification, Mobile Push Notification |
recipient | The user's email address where the campaign email was delivered. | [email protected] | Email, Transactional email, SMS, Transactional SMS, Mobile Push Notification |
sent_timestamp | The timestamp of when the message was sent (sent from Bloomreach Engagement) | / | Email, Transactional email, Browser Push Notification, Mobile Push Notification |
message | / | / | Email, SMS, Webhook, Ads, Mobile Push Notification |
message_id | Unique ID of the email message on the side of the email provider (ESP) | / | |
comment | / | / | Email, SMS |
error | / | / | Email, SMS |
code | The SMTP code received from a server after you sent out an email. | 422 | Email. See below for details. |
cumulative | Whether the cumulative bounce logic should be applied. | true/false | |
ip | IP address of the user targeted by the campaign. | 129.233.109.145 | Email, Transactional email |
user-agent | Name of the email client from which the campaign link was clicked from. | Mozilla | Email, Transactional email |
url | URL campaign link that was clicked on by the user. | / | Email, Transactional email |
city | / | Kosice | Email, Transactional email |
country | / | Slovakia | Email, Transactional email |
latitude | / | 48.7164 | Email, Transactional email |
longitude | / | 21.2611 | Email, Transactional email |
sending_ip | / | / | |
state | / | / | Email, Transactional email |
type | / | / | |
xpath | / | / | Email, Transactional email |
template_id | The unique system ID of the template used, if a template has been used instead of raw HTML. | / | Transactional email |
template_name | The name of the template used, if a template has been used instead of raw HTML. | / | Transactional email |
audience_id | ID of the ads audience | / | Ads |
operation | Type of the audience operation - add or remove from audience | add_customers / remove_customers | Ads |
number_of_message_parts | / | / | SMS, Transactional SMS |
sender | / | / | SMS, Transactional SMS |
status_code | Response status code | / | SMS, Transactional SMS, Webhooks |
preset_channel | Type of the webhook preset | / | Webhooks |
platform | Type of the push platform | browser / ios / android | Browser Push Notification, Mobile Push Notification |
Permissioned Access to Campaign Event Settings
Campaign Settings now have permission access. Any change to mapping can be executed only after a discussion with Account Managers.
Values of the status attribute
Status | Explanation |
---|---|
enqueued | Bloomreach Engagement enqueued the message to the service provider. |
enqueue_failed | Bloomreach Engagement could not enqueue the message. A missing message property in a customer profile does not generate enqueue_failed events. For example, the same applies to phones. Learn more . |
suppressed | Send suppressed by Bloomreach Engagement; by either frequency or consent policy, or by suppression lists. |
delivered | Service provider confirmed delivery. |
opened | The message was opened = pixel in the email was loaded. Note that some services block these pixels, which may result in customers who only have the clicked event tracked, without opened . |
clicked | The customer clicked on a link inside the email or SMS (using the Campaign Link Shortener). This also includes clicking on the unsubscribe link. |
soft_bounced, dropped | The service provider notified Bloomreach Engagement that the message was bounced with a temporary error. Further messages will attempt to be delivered. This error may happen for example due to a full inbox. |
hard_bounced, bounced | Service provider notified Bloomreach Engagement that the message was bounced with a permanent error. This may happen, for example, due to an invalid email address. |
preblocked | The service service provider put the domain on the suppression list, so emails from the domain will not be delivered to the customer. |
revalidated | Setting this status ensures that the previous soft_bounced events are not considered. Used for re-engagement of permanently bounced customer profiles. Learn More. |
complained | Email provider notified Bloomreach Engagement that the customer marked the email as "Spam". |
unsubscribed | Customer unsubscribed from email inbox using the List unsubscribe feature. |
sent | The message was submitted to the network for delivery. |
failed | Communication error between Bloomreach Engagement and the service provider. |
closed | The push notification is delivered and displayed in the browser and the user closes the displayed notification. |
incoming_message | Text of an SMS or a WhatsApp reply from the campaign recipient (upon activating Two-Way Messaging). |
rejected | The service provider notified Bloomreach Engagement that the message was rejected for delivery. |
success | The customer was successfully added to Ads audience. |
aborted | The campaign was aborted by using Jinja abort function with custom message. |
read | The recipient opened and read your WhatsApp message. Only available for customers who enabled read receipts in their WhatsApp settings. |
Which status attributes are generated by each channel
Status | SMS (CM Telecom) | SMS (Sinch/Infobip) | MMS (Sinch/Infobip) | Webhooks | Ads | Browser Push | Mobile Push | WhatsApp (Sinch/Infobip) | |
---|---|---|---|---|---|---|---|---|---|
enqueued | Yes | / | Yes | Yes | / | / | / | / | Yes |
enqueue_failed | Yes | / | Yes | Yes | / | / | / | / | Yes |
suppressed | Yes | / | / | / | / | / | / | / | / |
delivered | Yes | / | Yes | Yes | / | / | Yes | Yes | Yes |
opened | Yes | / | / | / | / | / | / | / | / |
clicked | Yes | Yes (using Campaign Link Shortener) | Yes (using Campaign Link Shortener) | Yes (using Campaign Link Shortener) | / | / | Yes | Yes | Yes (using Campaign Link Shortener ) |
soft_bounced | Yes | / | / | / | / | / | / | / | / |
hard_bounced | Yes | / | / | / | / | / | / | / | / |
preblocked | Yes | / | / | / | / | / | / | / | / |
complained | Yes | / | / | / | / | / | / | / | / |
unsubscribed | Yes | / | / | / | / | / | / | / | / |
sent | / | Yes | / | / | Yes | / | Yes | Yes | / |
failed | / | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
closed | / | / | / | / | / | / | Yes | / | / |
incoming_message | / | / | Yes | Yes | / | / | / | / | / |
rejected | / | / | Yes | Yes | / | / | / | / | / |
success | / | / | / | / | / | Yes | / | / | / |
read | / | / | / | / | / | / | / | / | Yes (Sinch only) |
Values of the code attribute
Code
attribute gives you the SMTP error or reply code received from a server after you send out a campaign email. The status
attribute is based on these codes, however, it is useful to also know the code itself as it is more precise in assessing what happened to the email. The following link contains a list of codes and their corresponding meanings. For these to work correctly, you need to have a Mailgun integration. Even though SMTP codes are reliable for most customers, beware that small email providers often send alternative SMTP codes that will not be recognized.
Tracking clicked event
Links to your webpage sent out in a campaign lead to our CDN domain first so that the
clicked
event is tracked. After that, the customer is redirected from the CDN domain to your webpage.
Issues with the opened event
Opened
event tracked for Gmail does not guarantee that the recipient had indeed opened your email. Gmail's servers sometimes download external images from emails into their cache in advance. As we use these images to track whether the customers opened the email, we get a fake open event every time Gmail's servers do this. Moreover, email providers sometimes block the loading of the images we use for the tracking of theopened
event so even if your email seems to be justdelivered
it might, in fact, be opened.
Bounce management
When an email does not get delivered, there might be multiple reasons why it happened. We collect the failure feedback from our email providers and automatically assign them to standard bounce categories such as soft bounce (for example, full inbox) or hard bounces (for example, invalid email). Bloomreach Engagement also works with our custom type of bounce, what we call a “cumulative bounce”! Read all the details in our article for Bounce Management.
Status name change and filters migration
In 1.173 we unified the statuses of email campaign events from email providers and renamed them to meet the industry standards and improve user experience.
In the following table you can find the naming changes:
Previous status name | New status name |
---|---|
dropped | soft_bounced |
soft bounced | soft_bounced |
bounced | hard_bounced |
rejected | preblocked |
Along with renaming, an automatic migration was carried out, in order to update event filters as defined below. The new naming along with the original one was used in the migration to ensure backwards compatibility. So don't worry, you probably don't have to update your analytics and campaigns manually, but keep an eye on your business critical use cases after the change to make sure everything works as expected.
The following change was done in all filters that use the renamed statuses:
- Operators
equals
have been changed toin
anddoes not equal
tonot in
and extended with new statuses. - Operators
in
andnot in
have been extended with new statuses.
Rest of the string filters
contains
,does not contain
,starts with
,ends with
andmatches regex
were not changed as they are unlikely to be used for this purpose. Manual change is needed in case you want to use those filters in combination with the renamed statuses.For any other custom usage such as jinja or webhooks a manual change is needed as well.
Example:
equals dropped
->in [dropped, soft_bounced]
in [dropped, x, y]
-> in [dropped, soft_bounced, x, y]
survey
survey
happens when the customer is shown a survey question you had created. More on surveys
Attribute | Description | Example |
---|---|---|
question | Question given in the survey. | How likely are you to recommend Bloomreach Engagement to your friends? |
answer | Answer given by the user in the survey. (Has value only if the customer answers the question.) | Very likely. |
interaction | Information on whether the user filled and sent the survey. | true |
survey name | Name you gave to the survey. | Satisfaction survey |
survey_id | Randomly generated ID of the survey, | 5c584sa5729971a4f992sj9 |
question_index | Order of the question in which it appears in the survey. | 2.00 (second question of the survey) |
merge
merge
when 2 customer profiles are merged into 1.
Attribute | Description | Example |
---|---|---|
source_internal_ids | Internal IDs of merged customers | ["58244a8dfb6009d9d3213198", "5820734f83043485f66795eb"] |
destination_internal_id | Internal ID of final customer | "5820734f83043485f66795eb" |
original_external_ids | External IDs (registered, cookie) of merged customers | {"5820734f83043485f66795eb":{"registered":["[email protected]"]},"58244a8dfb6009d9d3213198":{"cookie":["c50961e7-9086-4169-8066-1ee47615108b"]}} |
final_external_ids | List of all external IDs (registered, cookie) from two initial profiles | {"cookie":["c50961e7-9086-4169-8066-1ee47615108b"],"registered":["[email protected]"]} |
requested_ids | List of external IDs (registered, cookie) in the request which merged the clients | {"cookie":"c50961e7-9086-4169-8066-1ee47615108b","registered":"[email protected]"} |
ab test
ab test
happens when the customer sees one of the variants of a page, banner, or recommendation you had created in an A/B split. More on A/B testing
Attribute | Description | Example |
---|---|---|
variant | Name of the A/B split variant loaded on the webpage. | Variant A/control group |
variant_id | Automatically-generated ID of the variant. | c584sa5729971a4f992sj9 |
location | URL of the particular variant of the user sees. | http://eshop.exponea.com/chaz-kangeroo-hoodie-variant-a.html |
device | Mobile device from which the user sees the particular variant. If the visit was not through a mobile device then it is marked as "other". | Iphone |
os | Operating system of the device through which the user sees the particular variant. | Windows |
browser | Browser through which the the user sees the particular variant. | Chrome |
name | Weblayer's or experiment's name. | |
banner_id/experiment_id | Weblayer's or experiment's ID. |
experiment
experiment
happens when an experiment is shown to the customer. More on experiments
Attribute | Description | Example |
---|---|---|
experiment_name | Custom-given name of the experiment. | Experiment 1 |
experiment_id | Automatically-generated ID of the experiment. | 584sa5729971a4f992sj9 |
variant_name | Name of the A/B split variant used in the experiment loaded on the webpage. | Variant A |
variant_id | Automatically-generated ID of the variant used in the experiment loaded on the webpage. | c584sa5729971a4f992sj9 |
action | Nature of the engagement the user had with the experiment. "Show" is a default standard for indicating that the experiment has loaded on the page. | show/close/submit/click |
location | URL of the page with the experiment. | http://eshop.exponea.com/chaz-kangeroo-hoodie-experiment-1.html |
path | Location URL without the domain and parameters. | chaz-kangeroo-hoodie-experiment-1.html |
device | Mobile device from which the user sees the page with the experiment. If the visit was not through a mobile device then it is marked as "other". | Iphone |
os | Operating system of the device through which the user sees the page with the experiment. | Windows |
browser | Browser through which the the user sees the page with the experiment. | Chrome |
anonymization
anonymization
happens when you remove the customer's identification but still keep their data for analytics purposes. Read more about anonymization in Individual Rights.
Attribute | Description | Example |
---|---|---|
source | Source through which the user's information was anonymized. | events_ext_api, app |
access_group_id | API Group Identifier (This property will only appear if anonymization was performed through the API). | API_Group_ID |
user_id | User's Internal Identification (This property will only show if the Customer Profile was anonymized manually using the UI). | USER_ID |
Efficient Engagement usage
When generated, system events get processed and stored, thus counting toward your Monthly Processed Events (MPE) and Maximum Events Storage (MES) covered by your contract. Learn how to optimize your MPE and MES in this best practices article to get the most out of your Engagement experience.
Updated about 2 months ago