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.

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 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

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 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.