# Floodlight - DV360

## Implémentation CM360 Floodlight via GTM

<figure><img src="/files/0RDSioITFXHFDOiSJ5fv" alt=""><figcaption></figcaption></figure>

### Contexte

Implémentation de tags Campaign Manager 360 (CM360) Floodlight via Google Tag Manager. Trois tags sont nécessaires :

| Tag                        | Type GTM           | Trigger                    | Rôle                 |
| -------------------------- | ------------------ | -------------------------- | -------------------- |
| Google Tag (Floodlight)    | Google Tag         | Initialization - All Pages | Charge gtag.js CM360 |
| Floodlight Counter Default | Floodlight Counter | All Pages                  | Compteur de session  |
| Floodlight Counter Lead    | Floodlight Counter | Événement de conversion    | Compteur unique/lead |

***

### Prérequis

Informations à récupérer dans CM360 (Floodlight > Activités) avant de commencer :

| Variable                | Exemple     | Description                        |
| ----------------------- | ----------- | ---------------------------------- |
| `[AdvertiserID]`        | `16851458`  | ID numérique du compte CM360       |
| `[GroupTag]`            | `invmedia`  | Activity Group Tag                 |
| `[ActivityTag_default]` | `peria0`    | Tag de l'activité compteur session |
| `[ActivityTag_lead]`    | `peria00`   | Tag de l'activité lead/unique      |
| `[Trigger_conversion]`  | `form_sent` | Nom du trigger GTM de conversion   |

Vérifications dans GTM avant de créer les tags :

* Un tag GA4 (`G-XXXXXXX`) est présent → confirme que `gtag.js` est déjà chargé
* Le trigger de conversion existe (ex: `Success message form_sent`)
* Aucun tag `DC-XXXXXXX` n'est déjà présent (éviter les doublons)

***

### Étape 1 — Variable Session ID

Requis par le tag Default (counting method `per_session`). À créer **avant** les tags.

**GTM > Variables > Nouvelle > Custom JavaScript**

```javascript
function() {
  var key = 'cm360_session_id';
  var id = sessionStorage.getItem(key);
  if (!id) {
    id = Math.round(2147483647 * Math.random());
    sessionStorage.setItem(key, id);
  }
  return id;
}
```

**Nom recommandé :** `Var - CM360 Session ID`

{% hint style="info" %}
`sessionStorage` persiste le même ID pendant toute la durée de la session navigateur et génère un nouvel ID à chaque nouvelle session — comportement identique à la logique `per_session` de CM360.
{% endhint %}

***

### Étape 2 — Google Tag Floodlight

Charge le script `gtag.js` de CM360. Doit se déclencher **avant** les tags Floodlight Counter.

**GTM > Tags > Nouveau > Google Tag** (section Floodlight)

| Champ   | Valeur                       |
| ------- | ---------------------------- |
| Tag ID  | `DC-[AdvertiserID]`          |
| Trigger | `Initialization - All Pages` |

{% hint style="warning" %}
Utiliser `Initialization - All Pages` et non `All Pages` — garantit le chargement de `gtag.js` avant les autres tags Floodlight.
{% endhint %}

***

### Étape 3 — Floodlight Counter Default

Compte les sessions utilisateurs sur toutes les pages.

**GTM > Tags > Nouveau > Floodlight Counter** (section Floodlight)

| Champ              | Valeur                       |
| ------------------ | ---------------------------- |
| Advertiser ID      | `[AdvertiserID]`             |
| Activity Group Tag | `[GroupTag]`                 |
| Activity Tag       | `[ActivityTag_default]`      |
| Counting Method    | `Per Session`                |
| Session ID         | `{{Var - CM360 Session ID}}` |
| Trigger            | `All Pages`                  |

***

### Étape 4 — Floodlight Counter Lead

Se déclenche sur un événement de conversion spécifique.

**GTM > Tags > Nouveau > Floodlight Counter** (section Floodlight)

| Champ              | Valeur                 |
| ------------------ | ---------------------- |
| Advertiser ID      | `[AdvertiserID]`       |
| Activity Group Tag | `[GroupTag]`           |
| Activity Tag       | `[ActivityTag_lead]`   |
| Counting Method    | `Unique`               |
| Trigger            | `[Trigger_conversion]` |

***

### Organisation GTM

Convention de nommage recommandée :

| Élément             | Nom                              |
| ------------------- | -------------------------------- |
| Google Tag          | `Tag - CM360 Google Tag`         |
| Floodlight Default  | `Tag - CM360 Floodlight Default` |
| Floodlight Lead     | `Tag - CM360 Floodlight Lead`    |
| Variable Session ID | `Var - CM360 Session ID`         |

Ranger les 3 tags dans un dossier **CM360** ou **Floodlight** dans GTM.

***

### Validation

#### Preview GTM

1. Activer le mode Preview et ouvrir le site
2. `Tag - CM360 Google Tag` → doit apparaître dans **Tags Fired** (trigger: Initialization)
3. `Tag - CM360 Floodlight Default` → doit apparaître dans **Tags Fired** (trigger: All Pages)
4. `Tag - CM360 Floodlight Lead` → déclencher l'événement de conversion, tag doit apparaître

#### Vérification réseau

Dans Chrome DevTools > Network, filtrer sur `doubleclick` :

```
# Tag Default
https://ad.doubleclick.net/ddm/activity/src=[AdvertiserID];type=[GroupTag];cat=[ActivityTag_default];...

# Tag Lead
https://ad.doubleclick.net/ddm/activity/src=[AdvertiserID];type=[GroupTag];cat=[ActivityTag_lead];...
```

#### Checklist finale

* [ ] Google Tag fired sur toutes les pages
* [ ] Floodlight Default fired sur toutes les pages
* [ ] Floodlight Lead fired sur l'événement de conversion
* [ ] Requêtes `doubleclick.net` visibles dans le réseau
* [ ] Aucune erreur console JS
* [ ] Tags renommés et rangés dans un dossier GTM
* [ ] Version GTM publiée avec un nom explicite (ex: `CM360 Floodlight - [Client]`)

***

### Troubleshooting

#### Tag absent de "Tags Fired" en Preview

{% hint style="danger" %}

* Vérifier que le trigger est bien associé au tag
* Pour le Lead : confirmer que l'événement apparaît dans la timeline GTM Preview
* Vérifier l'absence de Blocking Trigger
  {% endhint %}

#### Session ID vide (`value must not be empty`)

{% hint style="danger" %}

* La variable Custom JS doit être créée **avant** le tag
* Vérifier la syntaxe : `{{Var - CM360 Session ID}}`
* Tester dans Preview : onglet Variables, chercher `CM360 Session ID`
  {% endhint %}

#### Doublon de `gtag.js` (GA4 + CM360)

{% hint style="info" %}
Non bloquant fonctionnellement — GTM déduplique le `dataLayer`. Pour une implémentation propre, fusionner les deux Google Tags en un seul avec les deux IDs en config additionnelle.
{% endhint %}

#### Requêtes `doubleclick.net` absentes

{% hint style="warning" %}

* Vérifier que le Consent Mode ne bloque pas les tags publicitaires
* Si Consent Mode v2 actif : les tags CM360 nécessitent `ad_storage = granted`
* Tester avec le consentement accordé
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cmp.docs.sirdata.net/faq/tracking/floodlight-dv360.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
