General information
DOM modifications
The purpose of the script provided by Allo-Media is to modify phone numbers in the DOM, as such, a reflow, and thus a repaint is 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 does not work without cookies, it is the customer's responsibility to verify that the end user has accepted its cookie policy.
Allo-Media's script enables an 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 because it depends on the number of phone numbers to be replaced on the page visited 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
- amloader.js is never cached to make sure that every visitor always has the latest version of the main script, amalytics-[hash].js. Its low weight and loading speed, combined with the fact that it is loaded asynchronously, makes its impact on the page very small,
- amalytics-[hash].js is cached for one year. It is the main script, responsible among other things for finding phone numbers in the page and replacing them,
- replacenumbers.js is never cached as the data potentially changes with each page viewed. This file is dynamic and includes the response from our backend containing the tracking phone numbers.
Script isolation
The script creates an AlloAnalyticsObject
in the global scope, which contains the name of the real object, which can be customized. This second object is then created, and is named am
by default.
The customization of the name of this object is described later in this document.
No other object or function in the global scope is redefined.
Compliance with protocol
All the requests made go through the https protocol.