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.

Two cookies are stored in the user's browser:

LabelWhat is doesWhat is containsExpiration
AMVisitorIdentifies the visitorAn identifier of 36
alphanumeric characters
T + 13 months
AMVisitIdentifies the visitAn 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

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

FileMean load time (without cache)Mean load time (with cache)
amloader.js14msNA*
amalytics-[hash].js15ms5ms
replacenumbers.js54msNA*

Weight of downloaded resources

FileWeight (without cache)Weight (with cache)
amloader.js0.60KB0*
amalytics-[hash].js4.6KB0KB
replacenumbers.jsEntre 1KB et 2 KB*0*
Total6.5KB1.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.