System events are a group of events available to all Exponea customers by default without the need for a specifically-tailored integration. As opposed to custom events, automatic events should be the same for all Exponea users. In this article, we will list and explain the attributes of these events.
session_start happens when the customer visits your website
first_session is derived from the session_start event. It happens when the customer visits your website for the very first time
session_ping is an auxiliary event that will help you track other events. It is generated on every
page_visit and then every 2 minutes while the page is still open in the browser.
session_end is generated 20 minutes after the last
session_ping with a timestamp of the last
session_ping + 30 seconds.
A 'session_start' and 'session_end' (but no 'page_visit') can occasionally be tracked without the customer's actual activity. This can happen when the customer's device is only hybernated and their browser gets active and generates a 'session_ping' without any 'page_visit'.
The duration of the session will be the difference between the timestamps of
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 don't return, those 20 minutes will not be counted into the session duration.
Name of the city from which the user is visiting your website.
Name of the state/region from which the user is visiting your website.
Name of the country from which the user is visiting your website.
Latitude from which the user is visiting your website.
Longitude from which the user is visiting your website.
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.
Url of the platform from which the user visited your website.
Automatically-generated ID of the campaign that brought the customer on your website. More about UTM parameters
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
UTM code of the platform from which the user visited your website. More about UTM parameters
UTM code of the campaign method used to bring the customer on your website. More about UTM parameters
email / push_notification
UTM code of the content that brought the customer on your website. More about UTM parameters
banner / logolink / product-feed
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
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.
IP address of the user who visited your website.
Mobile device from which the user visited your website. If the visit was not through a mobile device then it is marked as "other".
Operating system of the device through which the user visited your website.
Browser through which the user visited your website.
URL of the page where the user's session started.
Location URL without the domain and parameters
duration (only for session_end)
The amount of time the user spent on the website during this session measured in seconds .
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
city attributes are generally very reliable, however, the
longitude are often not (as they are a more precise measure of the customer's location).
session_start is often complemented with these manually-added custom attributes.
Number of milliseconds it took to load the page. Read on how to add the attribute to event in the Web tracking article.
Height of the screen the customer used to visit your webpage.
Width of the screen the customer used to visit your webpage.
Resolution of the screen the customer used to visit your webpage.
Version of a browser the customer used to visit your webpage.
Mobile device from which the user visited the page. If the visit was not through a mobile device then it is marked as "other".
Url of the platform from which the user visited the page.
Operating system of the device through which the user visited the page.
URL of the page that the user visited.
Browser through which the user visited the page.
Issues with the tracking
If you are using our CDN page outside of your own domain for giving out surveys/getting consent, no
session_start events will be generated.
campaign event is generated when working with emails, text messages, push notifications, or webhooks.
Status of the user's interaction with the campaign mainly based on the SMTP code.
The SMPT code received from a server after you sent out an email.
Name you gave to the campaign.
Automatically-generated ID of the campaign.
Campaign's method of approaching the user.
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.
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.
Name of the policy used in the campaign shown to the particular user. More on policy
Custom-given subject of the e-mail sent in the campaign.
Language used in the campaign shown to the particular user.
The user's email address where the campaign email was delivered.
IP address of the user targeted by the campaign.
Name of the email client from which the campaign link was clicked from.
URL campaign link that was clicked on by the user.
Name of the A/B split variant loaded on the webpage.
Variant A, control group
Information on whether the user saw this variant for the first time.
Exponea enqueued the email to the email provider
The message was submitted to the network for delivery.
Email provider confirmed delivery
Exponea could not enqueue the email
Communication error between Exponea and the email provider
The email 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
The customer clicked on a link inside the email. This also includes clicking on the unsubscribe link.
Email provider notified Exponea that the customer marked the email as "Spam"
soft_bounced (equivalnt for Mailgun = "failed" for the reasons "old" or "greylisted")
The email provider notified Exponea that the email was temporarily bounced and will try to deliver it again later. A full inbox is among the possible reasons for the error.
hard_bounced (equivalnt for Mailgun = "failed" for the reasons "bounce", "generic" or "blacklisted")
Email provider notified Exponea that the email was bounced with a permanent error.
preblocked (equivalnt for Mailgun = "failed" for the reasons "suppress-bounce", "suppress-unsubscribe" or "suppress-complaint")
The mail service provider had put you on the suppression list and so your emails will not be delivered to the customer.
Email provider notified Exponea that email was rejected for delivery/ The reason might be too many bounces, unsubscription or blacklisting.
Tracking clicked event
Links to your webpage sent out in a campaign firstly lead to our CDN domain so that the
clicked event is tracked. After that, the customer is immediately 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 the
opened event so even if your email seems to be just
delivered it might, in fact, be opened.
When an email is bounced, the
email_invalid property is set to
yes`. When `email_invalid` or `unsubscribed` is set to `true`/yes`, Exponea won't send emails to those customers, even if they satisfy all other conditions, hence using these attributes manually in conditions is not necessary. This serves to prevent undeliverable emails from being sent, protecting the sender's reputation and spam score. Learn more about how unsubscribing works in the campaign groups article.
Statuses of the
campaign event are based on the SMTP error codes received. SMTP error codes starting with 4xx are marked as
dropped, while error codes 5xx stand for
bounced. However, some providers send 5xx marked as
dropped. In these cases, Exponea treats them as bounced emails.
Code attribute gives you the SMPT 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 SMPT codes are reliable for most customers, beware that small email providers often send alternative SMPT codes that will not be recognized.
survey happens when the customer is shown a survey question you had created. More on surveys
Question given in the survey.
How likely are you to recommend Exponea to your friends?
Answer given by the user in the survey. (has value only if the customer answers the question)
Information on whether the user filled and sent the survey.
Name you gave to the survey.
Randomly generated ID of the survey,
Order of the question in which it appears in the survey.
2.00 (second question of the survey)
Two IDs that merged together.
The ID resulting from the merger (the older one from the two original ones).
Two IDs for external platforms that merged together.
The ID for external platforms resulting from the merger (the older one from the two original ones).
ab test happens when the customer sees one of the variants of a page/banner/recommendation you had created in an A/B split. More on A/B testing
Name of the A/B split variant loaded on the webpage.
Variant A/control group
Automatically-generated ID of the variant.
URL of the particular variant of the user sees.
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".
Operating system of the device through which the user sees the particular variant.
Browser through which the the user sees the particular variant.
experiment happens when an experiment is shown to the customer. More on experiments
Custom-given name of the experiment.
Automatically-generated ID of the experiment.
Name of the A/B split variant used in the experiment loaded on the webpage.
Automatically-generated ID of the variant used in the experiment loaded on the webpage.
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.
URL of the page with the experiment.
Location URL without the domain and parameters
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".
Operating system of the device through which the user sees the page with the experiment.
Browser through which the the user sees the page with the experiment.
anonymization happens when you remove the customer's identification but still keep their data for analytics purposes. You can read more about anonymization in Data management.
Software through which the user's information was anonymized.
Level of access rights of the person who anonymized the user's information.
Updated 9 days ago