> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Analytics 4 — Streaming d'événements

> Diffusez automatiquement les événements d'exposition aux expériences Kameleoon vers Google Analytics 4 depuis le côté serveur pour une analyse comportementale enrichie par variation d'expérience.

L'intégration Google Analytics 4 Event Streaming de Kameleoon vous permet d'envoyer automatiquement des événements à votre compte Google Analytics 4 chaque fois que des visiteurs sont exposés à une expérience Kameleoon. Cette fonctionnalité permet d'enrichir l'analytique dans Google Analytics 4 en fournissant des informations sur l'exposition aux expériences afin de mieux comprendre le comportement et l'engagement des utilisateurs.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/analytics/google-analytics-4/google-analytics-4/ga4.png)
</Frame>

Cette intégration utilise le dispatcher d'événements de Kameleoon pour envoyer des événements côté serveur à votre compte Google Analytics 4 par lots via le point de terminaison **`/mp/collect`** de l'[API HTTP Google Analytics 4](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#transport).

## Bénéfices clés

* **Insights comportementaux précis :** L'intégration envoie des événements spécifiques aux outils tiers pour les visiteurs exposés à des web experiments et à des feature flags sur des projets basés sur SDK. Ce suivi détaillé permet d'avoir une vue claire de la façon dont les différentes variations influencent les actions des utilisateurs. Par exemple, vous pouvez observer quelle variation génère le plus de clics, de conversions ou d'autres résultats souhaités, ce qui vous aide à déterminer l'approche la plus efficace.
* **Prise de décision en temps réel :** L'intégration fournit des données en temps réel. Avec ces insights à jour, vous pouvez rapidement ajuster vos stratégies si une variation ne fonctionne pas comme prévu ou allouer des ressources pour capitaliser sur les variations performantes.
* **Mise en place sans effort :** Activez les intégrations tierces dans l'application Kameleoon, sans avoir besoin de code personnalisé ni de modifications du SDK.

## Considérations

**Délai de livraison des événements :** Le serveur de Kameleoon dispatche les événements vers Google Analytics 4 avec un délai minimum de 30 minutes.

## Prérequis

Pour configurer cette intégration, vous avez besoin des informations suivantes :

* **SDK Kameleoon :** Un SDK doit être installé sur votre projet côté serveur.
* **API secret :** L'API secret généré dans Google Analytics, documenté [ici](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#payload).
* **Measurement ID :** Pour les SDK web, l'identifiant d'un Data Stream, comme documenté [ici](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#payload).
* **Firebase app ID :** Pour les SDK mobiles, l'identifiant d'une application Firebase, comme documenté [ici](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=firebase#payload).

### Choisir le bon identifiant GA4

Pour garantir une attribution utilisateur correcte dans les rapports GA4, vous devez créer la donnée personnalisée appropriée en fonction du type d'application :

* **Pour les projets basés web (sites utilisant `gtag.js`) :** Créez une donnée personnalisée appelée `ga4_client_id` et récupérez le `client_id` depuis GA4 (généralement stocké dans le cookie `_ga`).
* **Pour les applications mobiles basées sur Firebase :** Créez une donnée personnalisée appelée `ga4_app_instance_id` et récupérez l'`app_instance_id` depuis le SDK Firebase.

Cette distinction s'applique à tous les types d'intégrations GA4 dans Kameleoon, que ce soit pour les web experiments ou les feature flag experiments.

## Configuration

Cette intégration peut être utilisée pour le web et la feature experimentation.

### Pour les web experiments

Activez l'intégration sur la **page Intégrations**.

#### Identifier le client ID GA4

Vous devez envoyer un identifiant d'instance au backend Kameleoon à chaque visite. L'identifiant exact dépend de votre configuration GA4. Si vous utilisez GA4 avec la méthode `gtag.js`, envoyez le `client_id`. Voici un exemple d'implémentation `gtat.js` utilisant notre API d'activation.

#### Configurer la donnée personnalisée

* **Nom :** `ga4_client_id`
* **Sélectionnez** votre projet.
* **Méthode de récupération :** API d'activation Kameleoon.
* **Type :** Single
* **Format :** String
* **Portée :** Visite

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/analytics/google-analytics-4/google-analytics-4-event-streaming/Capture-decran-2025-05-06-a-15.00.46.png)
</Frame>

#### Ajouter du code dans le script global

```javascript theme={null}
if(!Kameleoon.API.CurrentVisit.customData["ga4_client_id"]){

// First, create a ga4ClientId variable and obtain your GA4 client ID.
let gaClientId = null;

const getClientId = () =>{
    gtag('get', 'G-XXXXXXXXXX', 'client_id', function(clientId) {
        gaClientId = clientId;
    });
    return gaClientId !== null
}

Kameleoon.API.Core.runWhenConditionTrue(
    () => getClientId(),
    () =>{
        // Then set your Kameleoon "ga_client_id" custom data to this value using Kameleoon's Activation API
        Kameleoon.API.Data.setCustomData("ga4_client_id", gaClientId);
    },
    200
)

}
```

#### Activer l'intégration pour vos campagnes

Ajoutez l'intégration lors de la finalisation de votre web experiment.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/analytics/google-analytics-4/google-analytics-4-event-streaming/Capture-decran-2025-04-29-a-16.34.40-1536x407.png)
</Frame>

### Pour les feature experiments

Configurez l'intégration dans l'environnement du feature flag, sous la section **Intégrations**. Activez-la pour chaque environnement où vous souhaitez qu'elle soit active.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/analytics/google-analytics-4/google-analytics-4-event-streaming/Capture-decran-2025-06-02-a-10.37.49-1.png)
</Frame>

### Pour le mobile

Si vous utilisez l'analytique GA4 avec une application Firebase, vous devez envoyer le **Firebase app instance ID**.

Voici un exemple avec le SDK Android Kameleoon :

1. Identifier le Firebase app instance ID GA4
2. Configurer une donnée personnalisée
   * **Nom :** `ga_app_instance_id`
   * **Sélectionnez** votre projet.
   * **Méthode de récupération** : Méthode du SDK Kameleoon.
   * **Type :** Single
   * **Format :** String
   * **Portée :** Visite

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/integrations/as-a-destination/analytics/google-analytics-4/google-analytics-4-event-streaming/Capture-decran-2025-05-06-a-15.09.15.png)
</Frame>

#### Exemple Java avec le SDK Android Kameleoon

D'abord, récupérez votre Firebase app instance ID et stockez-le dans une variable.

Ensuite, utilisez le SDK Kameleoon pour définir votre donnée personnalisée `ga4_app_instance_id` sur cette valeur, en veillant à utiliser le bon index pour la donnée personnalisée `ga4_app_instance_id`, que vous pouvez trouver dans l'interface Kameleoon.

Dans cet exemple, l'index est `12` :

`kameleoonClient.addData(new CustomData(12, appInstanceId));`

Une fois l'intégration active et votre expérience en ligne, Kameleoon commencera à envoyer des événements d'expérience à Google Analytics 4 chaque fois qu'un visiteur y est exposé. Ces événements sont construits selon les [meilleures pratiques recommandées par Google](https://developers.google.com/analytics/devguides/collection/ga4/integration). Ces événements incluent des détails clés tels que :

* Un identifiant unique pour l'instance de l'application Firebase, pour la configuration SDK uniquement, appelé `app_instance_id`.
* Un identifiant unique pour le client, pour la configuration Web uniquement, appelé `client_id`.
* L'heure d'exposition
* Un identifiant unique pour l'expérience et la variation au format `KAM-XXXX-YYYY`, où `XXXX` est l'identifiant d'expérience Kameleoon et `YYYY` est l'identifiant de variation.

#### Exemple de payload d'événement

Kameleoon envoie des événements à Google Analytics 4 au format suivant :

```json theme={null}
{
  "events": [
    {
      "name": "experience_impression",
      "exp_variant_string": "KAM-1234-5567",
      "timestamp_micros": 1718201234000
    },
    {
      "name": "experience_impression",
      "exp_variant_string": "KAM-5678-6978",
      "timestamp_micros": 1718201267000
    }
  ],
  "app_instance_id": "example-instance-id"
}
```

##### Identifier les utilisateurs

Kameleoon **n'inclut pas** d'identifiants utilisateur (tels que `user_id` ou `client_id`) dans le payload de l'événement par défaut. L'identification est gérée via les champs suivants, selon l'environnement :

* **Mobile :** `app_instance_id` (standard pour les applications mobiles GA4)
* **Web :** `client_id` (l'équivalent de `app_instance_id` pour les clients web)

Si vous utilisez Kameleoon dans un backend web ou une configuration côté serveur, vous pouvez transmettre le `client_id` GA4 en le définissant comme un champ de donnée personnalisée (par exemple, `ga4_client_id`).

Vous pouvez définir ce champ en utilisant n'importe quelle méthode de récupération disponible — pas uniquement l'API d'activation. Il suffit qu'il soit défini au moins une fois par session Kameleoon.

##### Enrichir les événements

Kameleoon n'inclut pas vos données personnalisées spécifiques à votre business dans le payload d'événement serveur-a-serveur.

Si vous avez besoin d'enrichir le payload avec des données supplémentaires (telles que `client_id` ou attributs utilisateur) et que vous disposez d'un compte Kameleoon, vous pouvez les ajouter via les champs de données personnalisées dans la configuration de votre SDK ou soumettre une [demande de fonctionnalité](https://feedback.kameleoon.com/)
