Adenty User Guide
Adenty consists of a plugin and an Admin portal.
The plugin should be installed on a website (web app, web portal, platform) where we track or work with an anonymous audience. It collects metrics, fires events, and sends all this information to Adenty server and Google Analytics.
The Admin portal is a self-service portal that manages сustomer сompany details and users, the chosen Adenty plan, and a list of the tracked sites (organized into Site Groups if needed). The Admin portal also provides the Adenty installation artifacts and displays the analytics of the gathered visitor data.
To start using Adenty you need to choose a preferable plan, complete registration, configure Adenty, and install it to web resources where you want Adenty to run on.
Follow instructions below to configure and install Adenty on your web resource(s), as well as integrate with Adenty to consume the exposed data.
Configure Sites and Site Groups
By default, one site and one site group automatically created upon registration. You can manually add more sites and site groups, following the instructions below.
To add another site:
- On the Adenty Portal, Go to the Admin tab – > Sites
- Create your site or multiple managed sites by clicking the button «Add site» and filling in the form.
To add additional site group:
- On the Adenty Portal, go to the Admin tab – > Site groups.
- Create your site group or multiple site groups by clicking the button «Add a site group» and filling in the form.
Integrate Adenty with Google Analytics
Export JSON files with tags from Adenty portal
Download two JSON files:
- "Adenty_GTM_tags": contains custom Adenty tags specifically designed for Google Tag Manager (GTM) to track Adenty events in Google Analytics.
- "Configuration_tag" (optional): contains tag that connects Google Analytics with GTM.
Import the files to your Google Tag Manager container
- Import "Adenty_GTM_tags" to your GTM to track and display custom Adenty events in your Google Analytics.
- Optional: Use "Configuration_tag" if your Google Analytics and GTM are not yet connected.
- After the import is completed, you will see a list of Adenty tags in your GTM workspace.
Update tags with the Measurement ID of your Google Analytics
- Update the "Measurement ID" field with your Google Analytics ID (GA-ID) for each Adenty tag imported from "Adenty_GTM_tags".
- If using "Configuration_tag", replace the Configuration Tag ID with your Google Analytics ID (GA-ID).
Click "Publish" to apply changes
After that, you will start getting Adenty events on your Google Analytics account.
Please, use official Google Instructions for more details.
As a result, your Google Analytics will display Adenty events in addition to standard ones.
Install Adenty on Your Web Resource(s)
To start running Adenty on your web resource(s), complete the following steps:
On the Adenty Portal, go to the Implementation Tab.
To generate installation scripts for all sites that you manage, click the button «Generate script». Note, that each initialization script refers to a particular site and should be applied to it for correct analytics.
We recommend creating a separate site in the Admin Portal for each web resource environment, such as development or test, as well as for subdomains. This ensures accurate insights and visitor identification for each site.
To generate an installation script for a specific site, click on the filter button, then choose appropriate site group and site. Then click the button «Generate script».
Depending on the selected plan opt for one of three installation options:
- HTML (available for all pricing plans)
- GTM (available for Identity Pro, Identity Enterprise)
- White Label (JS) (available for Identity Pro, Identity Enterprise)
Placement of the Adenty code
After acquiring the installation script or its manual copying, add it to each page of your site (for example, within a common header).
For HTML type implementation put the script at the end of HTML body of every page.
For GTM type implementation put the script to the appropriate Tag that runs on every page.
Activating or deactivating Adenty
To comply with data privacy standards, you should place the code generated for Adenty installation in the code part of your web resource where the user's consent is processed. Therefore:
- If the user clicks "Yes" and agrees to tracking, recording, and storing cookies, you can activate Adenty.
- If the user clicks "No" and refuses tracking, recording, and storing cookies, you shouldn’t activate Adenty.
This option implies you should add two pieces of Adenty installation code separately (which is recommended for the performance purposes):
- To download Adenty, place the first code piece at the beginning of the web resource JavaScript run flow.
- To initialize Adenty, place the second code piece in the code of your web resource where the user's consent is processed.
Alternatively, you can add two pieces of installation code as one. For this, place the whole piece of Adenty code in the code of your web resource where the user's consent is processed.
Congratulations, you have successfully set up the Adenty Plugin!
Furtherdown, you don’t need to worry about Adenty plugin updates — it happens automatically.
Events Adenty Fires
Based on visitor activity, Adenty generates the following events:
- VisitorNew: visitor appeared on a web resource first time
- VisitorReturned: visitor returned to a web resource after some time (after the first visit)
- VisitorRestored: visitor was recognized (restored) as returned even though he appeared with empty local storage (e.g. due to local storage cleaning or activation of incognito mode, etc)
- VisitorFingerprintChanged: Fingerprint id got changed due to any device parameter changed (e.g. due to IP change or browser version, etc)
VisitorSwitchedFrom: the fact that the visitor switched to current ID from a previously used ID
VisitorSwitchedTo: the fact that the visitor switched from this ID to the updated ID
For authorized users, Adenty generates three additional events:
- AccountLogin: all subsequent logins of a visitor to one’s regular account
AccountSwitchedFrom: the fact that the visitor switched to current account from a previously used one
AccountSwitchedTo: the fact that the visitor switched from this account to the new account
To help detect fraudulent activity, Adenty generate such events as:
- VisitorVPNDetected: visitor navigated web resource under VPN
- AccountFraudDetected: visitor is likely to share single account with multiple users
- AccountNewDeviceDetected: access to account was carried out from a new device
- LocalStorageNotAvailableDetected: an event that triggers when Local Storage is blocked and the system switches to server-side cookies
All those events are generated and gathered by Adenty, and they are also sent to GA to extend existing Client’s analytics in GA.
Consume / Integrate Adenty Data
Once the Adenty plugin is launched on your site(s), you can access Adenty public object through console (JS code) — here you can get anonymous and authenticated visitors information as per below
To get anonymous visitor information, use the following commands:
adenty.getVisitorId()
adenty.getRecognitionId()
To get authenticated user information, use the following commands:
adenty.getAccountInfo()
To subscribe to the public Adenty event, use the following command:
adenty.listenTo(‘EventName’, function())
To subscribe to any other Adenty event, use the following command, replacing "EventName" with your target event. See the full list of available events in previous section.
Example of subscribing to an Event “visitorIdResolved”:
adenty.listenTo(‘ visitorIdResolved’, function(){
alert("Hello! AccountIdentityLogin");
})
Adenty passes arguments within the following events:
visitorIdResolved contains argument “visitorId”
recognitionIdResolved contains argument “recognitionId”
Along with firing events Adenty collects the following parameters:
VisitorId
RecognitionId
VisitorIP (hashed on the server)
Country
City
UserAgent
AcountID (for authorized visitors)
Browser settings
Device settings
Consume / Manage Server Cookies
Adenty recommends storing and managing Browser data outside of it to reduce the risk of been blocked on modern and secure Browsers versions.
Adenty Server cookie feature allows to put currently used Browser data from the Browser to Adenty server storage. Adenty Public Object adenty.scookie includes a set of methods for creating, deleting, and retrieving it:
“set” – Sets server cookie using an object format.
Usage examples:
await adenty.scookie.set({
"name": "string",
"value": "string",
"expires": "string",
"maxAge": "number",
"path": "string",
"sameSite": "enum",
"secure": bool,
"partitioned": bool,
"httpOnly": bool,
"scope": "string"
});
adenty.scookie.set({
"name": "string",
"value": "string",
"expires": "string",
"maxAge": "number",
"path": "string",
"sameSite": "enum",
"secure": bool,
"partitioned": bool,
"httpOnly": bool,
"scope": "string"
}).then(() => {console.log("set cookie");});
Params:
- name* – cookie’s name, required
- value – cookie’s value
- expires – expiration date of the cookie
- maxAge – numeric expiration age of the cookie, used for calculating expires and has higher priority than expires if both defined. If expires and maxAge are null, default value is 90 days
- path – url path storage of the cookie
- sameSite – specify whether/when cookies are sent with cross-site requests. Possible values: “Lax”, “Strict”, “None”
- secure – flag (if true), whether cookie is secure. If it is true, then cookie is added to the https requests only.
- httpOnly – flag (if true), whether it is a server-side cookie, in this case not available from the browser
- partitioned – Manages access for 3rd-party cookies, putting them to a specific partiotions, not all browsers support.
- scope – specify whether the cookie is set at the current domain level (current site) or shared across all sites within the current SiteGroup. Possible values: “Domain” or “SiteGroup” (values are case-insensitive). The default value is “Domain“.
To create a cookie on Domain level:
Adenty.scookie.set (
"name": "noname",
"value": "novalue"
);
To create shared cookie:
adenty.scookie.set (
"name": "noname ",
"value": "novalue",
"scope": "sitegroup"
);
“setString” – Sets server cookie in string format.
Usage examples:
await adenty.scookie.setString(
"cookieString",
"scope"
);
adenty.scookie.setString(
"cookieString",
"scope"
).then(()=> {console.log("set cookie")});
Params:
- cookieString – a string containing cookie parameters (see full list in the example below)
- scope – specify whether the cookie is set at the current domain level (current site) or shared across all sites within the current SiteGroup. Possible values: “Domain” or “SiteGroup” (values are case-insensitive). The default value is “Domain“.
The cookieString uses the same parameters as in the Set command.
To create a shared cookie setting all parameters, use the following command:
adenty.scookie.setString(
'qa=2;
Path=/;
Expires=Fri,
25 Oct 2024 08:23:14 GMT;
MaxAge=60;
SameSite=Lax;
Partitioned;
HttpOnly;
Secure=true',
"SiteGroup"
);
To create a local (domain) cookie use:
adenty.scookie.setString(
"name=value"
);
“get” – Retrieves cookies in object format.
Usage examples:
await adenty.scookie.get(
"cookieName"
);
adenty.scookie.get(
"cookieName"
).then(result => {console.log(result);});
Params:
- сookieName – cookie’s name. If “cookieName” is specified, it returns the cookie with that name; if not – it returns an array of all cookies.
“getString” – Retrieves cookies in string format.
Usage examples:
await adenty.scookie.getString(
"cookieName"
);
adenty.scookie.getString(
"cookieName"
).then(result => {console.log(result);});
Params:
- cookieName – cookie’s name.
If “cookieName” is specified, it returns the cookie with that name; if not – it returns a string containing all cookies.
“remove” – Deletes a cookie.
Usage examples:
await adenty.scookie.remove(
"cookieName",
"scope"
);
adenty.scookie.remove(
"cookieName",
"scope"
).then(() => {console.log("removed");});
Params:
- сookieName* – cookie’s name, required
- scope – specify whether the cookie is set at the current domain level (current site) or shared across all sites within the current SiteGroup. Possible values: “Domain” or “SiteGroup” (values are case-insensitive). The default value is “Domain“. If you try to delete a shared cookie passing scope=domain, an error will occur.
To remove a cookie on domain level, use the command:
adenty.scookie.remove(
"cookieName"
);
To remove a shared cookie use:
adenty.scookie.remove(
"cookieName",
"SiteGroup"
);
Server Cookies usage recommendations
Adenty server cookie methods are exposing all existing cookie properties keeping visibility and usage logic as before. For better experience string- and object-based methods were exposed, which are functioning equally and can be used as per consumer’s preference.
Adenty recommends from the first step to initially sync Browser data with Adenty Server storage and then keep that in sync on a regular basis.
If any questions are left, feel free reaching out using the feedback Form below.
Share your feedback
We value your opinion! Please, share your feedback on using Adenty as well as your questions and proposals to improve.