General information
DOM modifications
The purpose of the script provided by Allo-Media is to modify phone numbers in the DOM. As a result, a reflow, and thus a repaint are performed for each replaced number.
Cookie usage
Two cookies are stored in the user's browser:
Label | What is does | What is contains | Expiration |
---|---|---|---|
AMVisitor | Identifies the visitor | An identifier of 36 alphanumeric characters | T + 13 months |
AMVisit | Identifies the visit | An identifier of 36 alphanumeric characters | In minutes, setup per client |
Total size < 90 bytes.
As Allo-Media's solution requires cookies, it is the customer's responsibility to ensure that the end user has accepted their cookie policy.
Allo-Media's script offers the option to store data in localStorage instead of cookies. If the user's browser does not support this feature, cookies will be used by default.
Use of IndexDB/WebSQL
N/A
Call for external resources
N/A
Queries diagram
The script also performs queries to a logging service hosted by Allo-Media for monitoring purposes.
Redirections list (HTTP Response 302)
N/A
Timers
The only timers used are some setTimeout(/*function*/, 0);
in order to put certain functions in queue.
Browser support
The script is supported by at least the last two versions of the main browsers.
Security used on secure pages
PKCS #1 SHA-256 With RSA Encryption
Operating modes
At present, there are two modes of operation:
- "run" mode: the script is present on the page, the campaign is configured correctly, and the configured phone numbers are replaced by tracking numbers.
- standby mode: the script is present on the page, but does not replace the phone numbers because :
- the replacement of numbers has been paused/not yet activated
- no configured phone number was found on the page
- an error has occurred
Optimization
- The various JavaScript files loaded by the Allo-Media solution are asynchronous,
- Loaded files are minimized,
- The files are compressed via Gzip,
- As soon as possible, resources are cached
Resource loading time
File | Mean load time (without cache) | Mean load time (with cache) |
---|---|---|
amloader.js | 14ms | NA* |
amalytics-[hash].js | 15ms | 5ms |
replacenumbers.js | 54ms | NA* |
Weight of downloaded resources
File | Weight (without cache) | Weight (with cache) |
---|---|---|
amloader.js | 0.60KB | 0* |
amalytics-[hash].js | 4.6KB | 0KB |
replacenumbers.js | Entre 1KB et 2 KB* | 0* |
Total | 6.5KB | 1.9KB |
(*) Those files are neved cached.
(**) The weight cannot be specified precisely since it depends on the number of phone numbers to be replaced on the visited page and the number of connectors to be loaded. The figure shown corresponds to the classic case of one or two numbers to be replaced.
Cache policy
- The amloader.js script is not cached to ensure that every visitor always has the latest version of the main script, amalytics-[hash].js. Due to its low weight, fast loading speed, and asynchronously loading, it has a minimal impact on the page,
- The amalytics-[hash].js script is cached for one year. It is the main script, responsible for, among other things for finding phone numbers in the page and replacing them,
- The replacenumbers.js script is not cached because the data may changes with each viewed page. This file is dynamic and includes the response from our backend, which contains the tracking phone numbers.
Script isolation
The script creates an AlloAnalyticsObject
in the global scope, which includes the name of the actual object, that can be customized. A second object is then created, which is named am
by default.
The process of customizing of the name of this object is explained later in this document.
No other object or function in the global scope is redefined.
Compliance with protocol
All requests are made through the HTTPS protocol.