Intégration JS

Comment envoyer des évènements vers Forecast depuis une page web ?

Cette page explique comment envoyer des évènements avec un maximum d’informations vers Forecast Signals depuis une page web à l’aide de Forecast JS.

Configurer la page

Pour enrichir les évènements envoyés, les pages web doivent être correctement configurées.

Propriétés de l’évènement

Pour permettre aux évènements de porter un maximum d’informations, vous devez indiquer les balises HTML décrites ci-dessous dans votre page web.

URL de la page

URL de la page visitée.

<link rel="canonical" href="url">

Type de la page

Type de la page visitée. Valeurs acceptées : article, home, search, search_results.

<script type="text/javascript">
    __forecast.config.pageType = "article"; // ou "home", ou "search", ou "search_results"
</script>

Type de navigation de la page

Indique le type de navigation de la page visitée. Les valeurs possibles sont listées ici : https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/type.

<script type="text/javascript">
  __forecast.config.eventProperties.navigationType = "reload"; // ou "navigate", ou "back_forward"
</script>

Identifiant de l’article

Identifiant Sirius de l’article visité.

<script type="text/javascript">
  __forecast.config.article.globalId = "123abc";
</script>

URL de l’article

URL de l’article visité.

<script type="text/javascript">
  __forecast.config.article.canonicalUrl = "url";
</script>

Conteneur de l’article

Balise du conteneur de l’article visité.

<script type="text/javascript">
  __forecast.config.contentSelector = "selector"; // Sélecteur CSS de l'élément parent du contenu de l'article
</script>

Article débloqué

Pour indiquer si l’article visité est débloqué dans le contexte actuel, vous pouvez définir :

<script type="text/javascript">
  __forecast.config.article.isUnlocked = true; // ou `false`
</script>

Propriétés de l’utilisateur

Pour permettre aux évènements de porter un maximum d’informations concernant l’utilisateur, vous devez indiquer les balises HTML décrites ci-dessous dans votre page web.

Identifiant de l’utilisateur

Identifiant de l’utilisateur.

<script type="text/javascript">
  __forecast.config.user.id = "123abc";
</script>

Statut de l’utilisateur

Pour indiquer si l’utilisateur est un abonné ou pas.

<script type="text/javascript">
  __forecast.config.user.isSubscriber = true; // ou `false`
</script>

Configurer les zones de tracking

Pour assurer le suivi des impressions et des clics sur des zones spécifiques (listes, carrousels, mises en avant), vous devez baliser le HTML avec les attributs décrits ci-dessous. Les identifiants de zones doivent correspondre à ceux définis dans l’administration Sirius.

Identifiant de la zone

L’attribut data-fcst-tz-id définit le conteneur principal de la zone. Renseignez l’identifiant récupéré depuis Sirius.

<div data-fcst-tz-id="">
    <!-- Contenu de la zone -->
</div>

Identifiant des articles de la zone

L’attribut data-fcst-article-id identifie un article au sein d’une zone. Il doit être placé sur un élément enfant de la zone définie par data-fcst-tz-id.

<div data-fcst-tz-id="">
    <article data-fcst-article-id=""></article>
</div>

Déclencheur de clic sur la zone

L’attribut data-fcst-click identifie l’élément qui doit déclencher l’évènement de clic. Plusieurs éléments peuvent être identifiés comme déclencheurs au sein d’une même zone.

Lorsque l’attribut data-fcst-click est placé sur un élément identifié par data-fcst-article-id (ou l’un de ses enfants), l’identifiant de l’article est automatiquement associé au clic.

<div data-fcst-tz-id="">
    <article data-fcst-article-id="">
        <a href="" data-fcst-click>Lien vers l'article</a>
    </article>
    <a href="" data-fcst-click>Voir plus</a>
</div>

Envoyer des évènements

Pour transmettre des évènements vers Forecast Signals, utilisez la fonction sendEvent.

sendEvent(name, properties)

Permet de transmettre un Hit avec des évènements et propriétés personnalisés.

Syntaxe
__forecast.sendEvent(name, properties);
Paramètres

name

Nom de l’évènement.

properties

Objet acceptant les propriétés suivantes :

  • eventProperties
    • Propriétés de l’évènement. Il est possible de les surcharger différemment en fonction de l’évènement.
  • userProperties
    • Propriétés de l’utilisateur. À date, il n’est pas possible de surcharger les propriétés de l’utilisateur.

Création de compte

L’évènement account_creation doit être envoyé lors de la création d’un compte utilisateur.

Utilisation
__forecast.sendEvent(
    'account_creation',
    {
        eventProperties: {
            source: '',
        },
    }
);
Propriétés
NomTypeDescription
sourceChaîne de caractèresSource de l’inscription comme newsletter ou apple.

Consultation d’une page

L’évènement pageview doit être envoyé lors de la consultation d’une page.

Utilisation
__forecast.sendEvent(
    'pageview',
    {
        eventProperties: {
            globalId: 'globalId',
            isArticleUnlocked: false,
            pageType: 'home-fr',
            url: 'https://www.lemonde.fr/',
        },
    }
);
Propriétés
NomTypeDescription
globalIdChaîne de caractèresL’ID de l’article. Si renseigné, l’événement pageview est considéré comme étant dans un contexte d’une page article.
isArticleUnlockedBooléentrue si l’utilisateur peut lire l’article en entier, false sinon.
pageTypeChaîne de caractèresLe type de page.
urlChaîne de caractèresL’URL de la page.

Lecture d’un article

L’évènement read doit être envoyé lors de la lecture d’un article.

Utilisation
__forecast.sendEvent('read');

Commentaire

L’évènement comment doit être envoyé lorsqu’un utilisateur poste un commentaire.

Utilisation
__forecast.sendEvent('comment');

Partage

L’évènement share doit être envoyé lorsqu’un utilisateur partage un contenu.

Utilisation
__forecast.sendEvent('share');

Réception d’un cadeau

L’évènement gift_receive doit être envoyé lors de la réception d’un article offert.

Utilisation
__forecast.sendEvent('gift_receive');

Partage d’un cadeau

L’évènement gift_share doit être envoyé lors du partage d’un article offert.

Utilisation
__forecast.sendEvent('gift_share');

Changement du consentement

L’évènement consent_change doit être envoyé lors d’un changement de consentement.

Utilisation
__forecast.sendEvent(
    'consent_change',
    {
        eventProperties: {
            collect: true,
            ads: true,
            measure: 'optin',
        },
    }
);

Clic sur une publicité

L’évènement ad_click doit être envoyé lors du clic sur une publicité.

Utilisation
__forecast.sendEvent('ad_click');

Survol d’une publicité

L’évènement ad_hover doit être envoyé lors du survol d’une publicité.

Utilisation
__forecast.sendEvent('ad_hover');
Propriétés
NomTypeDescription
collectBooléentrue si le purpose personalization de la CMP est accepté, false sinon.
adsBooléentrue si le purpose ads de la CMP est accepté, false sinon.
measureChaîne de caractèresReprésente l’état du purpose analytics et de optoutAnalytics. Voir valeurs possibles.
Valeurs possibles pour measure
optoutAnalyticsanalyticsValeur
true(peu importe)"optout"
falsetrue"optin"
falsefalse"exempt"

Désactiver des évènements

Pour désactiver l’envoi automatique de certains évènements, vous pouvez définir :

<script type="text/javascript">
  __forecast.config.disabledEvents = [
      'pageview' // désactive l'envoi des évènements de page vue.
      'read' // désactive l'envoi des évènements de lecture.
  ];
</script>

Récupérer des informations

getReadingMetrics()

Permet de récupérer un tableau associatif des métriques de lecture par sélecteur.

Syntaxe

__forecast.getReadingMetrics();

Valeur de retour

Un tableau associatif des métriques de lecture par sélecteur.

{
  '.article__content': {
    rate: 45.96,
    time: 7,
    startTime: '2026-05-19T12:31:02.784Z',
    endTime: '2026-05-19T12:31:18.821Z',
  },
}