# Connecter Google avec un compte de service

Configurez un compte de service Google Cloud pour connecter Google Analytics, Search Console, Tag Manager et Google Ads avec un accès délimité et votre propre quota API.

Un **compte de service** est un compte Google destiné à un logiciel plutôt qu'à une personne. Il possède sa propre adresse e-mail se terminant par `iam.gserviceaccount.com`, et vous lui accordez l'accès à vos propriétés Google comme vous le feriez pour un collègue : en ajoutant cette adresse comme utilisateur avec le rôle de votre choix.

C'est **la seule façon de connecter Google Ads**, et la méthode recommandée pour connecter les autres services Google pour les agences et les utilisateurs techniques. Par rapport à « Se connecter avec Google » (OAuth), un compte de service :

- **Délimite l'accès avec précision.** La connexion ne peut voir que les propriétés GA4, sites Search Console, conteneurs Tag Manager et comptes Google Ads que vous partagez avec elle - rien d'autre provenant du compte personnel de quelqu'un.
- **N'est pas lié à une personne.** Les connexions OAuth se cassent quand la personne qui s'est connectée quitte l'équipe, change son mot de passe ou révoque l'accès à l'application. Un compte de service continue de fonctionner.
- **Utilise votre propre quota API.** Les requêtes OAuth passent par l'application partagée AI Data Stream, donc un usage intensif partage un même pool. Les requêtes du compte de service sont attribuées à *votre* projet Google Cloud, avec vos propres limites.
- **Réutilise une seule configuration partout.** Créez le compte de service une fois, puis utilisez la même clé JSON pour GA4, Search Console, Tag Manager et Google Ads sur toutes vos propriétés. Les agences peuvent en créer un par client pour une séparation stricte.

La contrepartie : environ 15 minutes de configuration unique dans Google Cloud Console. Ce guide détaille chaque étape.

> **Google Ads : compte de service uniquement.** Google associe de façon permanente un projet Google Cloud au premier token développeur Google Ads utilisé avec lui, et un token ne peut donc servir que depuis un projet auquel il est associé - le vôtre. Cela exclut une connexion via un identifiant partagé, avec un vrai avantage : votre token reste rattaché à votre propre projet plutôt que capté par le nôtre. L'API Google Ads exige toujours un [token développeur](/fr/docs/connecting-data-sources/#google-ads) à chaque appel, quelle que soit la méthode d'authentification.

## Comment ça fonctionne

Toute la configuration tient en trois idées :

1. **Créez** un compte de service dans un projet Google Cloud que vous possédez. Google vous fournit un fichier de clé JSON - les identifiants du compte de service.
2. **Partagez** vos propriétés avec l'adresse e-mail du compte de service (indiquée dans le JSON sous `client_email`), via la gestion des utilisateurs habituelle de chaque plateforme.
3. **Collez** le JSON dans AI Data Stream lors de l'ajout d'une connexion. Nous récupérons les propriétés visibles par le compte de service, vous en choisissez une, c'est terminé.

Le compte de service ne peut lire que ce que vous avez explicitement partagé, et tous les identifiants sont stockés chiffrés.

## Étape 1 : Créer un projet Google Cloud

Si vous avez déjà un projet Google Cloud, vous pouvez le réutiliser et passer à la suite.

1. Allez sur [console.cloud.google.com](https://console.cloud.google.com/)
2. Connectez-vous avec n'importe quel compte Google (ce compte ne fait que *posséder* le projet ; il n'a pas besoin d'accéder à vos données analytics)
3. Cliquez sur le sélecteur de projet dans la barre supérieure, puis sur **Nouveau projet**
4. Donnez-lui un nom reconnaissable, comme `aidata-connections`, et cliquez sur **Créer**
5. Vérifiez que le nouveau projet est sélectionné dans la barre supérieure avant de continuer

Toutes les API utilisées ici sont gratuites - aucune de ces connexions n'entraîne de frais par appel. Selon votre compte, Google peut néanmoins vous demander de rattacher un compte de facturation à la création du projet (c'est fréquent pour les comptes d'organisation et Workspace). En rattacher un ne signifie pas que ces API vous seront facturées.

![Formulaire Nouveau projet de Google Cloud Console avec un nom de projet saisi et l'identifiant de projet généré en dessous](/images/docs/service-account/cloud-new-project.png)

Le nom n'est qu'une étiquette - choisissez celui que vous reconnaîtrez plus tard. Si votre compte appartient à une organisation Google Cloud, un parent vous sera également demandé ; avec un compte personnel, ces champs restent vides.

## Étape 2 : Activer les API

Les API doivent être activées **dans le même projet que le compte de service**. N'activez que celles correspondant aux connexions que vous comptez utiliser :

| Connexion | API à activer |
|-----------|---------------|
| Google Analytics 4 | [Google Analytics Data API](https://console.cloud.google.com/apis/library/analyticsdata.googleapis.com) **et** [Google Analytics Admin API](https://console.cloud.google.com/apis/library/analyticsadmin.googleapis.com) |
| Google Search Console | [Google Search Console API](https://console.cloud.google.com/apis/library/searchconsole.googleapis.com) |
| Google Tag Manager | [Tag Manager API](https://console.cloud.google.com/apis/library/tagmanager.googleapis.com) |
| Google Ads | [Google Ads API](https://console.cloud.google.com/apis/library/googleads.googleapis.com) |

Pour chacune :

1. Ouvrez le lien ci-dessus (ou allez dans **API et services → Bibliothèque** et cherchez le nom)
2. Vérifiez que le bon projet est sélectionné dans la barre supérieure
3. Cliquez sur **Activer**

GA4 a besoin des deux API : la Data API répond aux requêtes de reporting, et l'Admin API liste vos propriétés et gère les annotations.

![Résultats de recherche « google ads api » dans la bibliothèque d'API Google Cloud, avec le résultat Google Ads API](/images/docs/service-account/cloud-api-library-search.png)

Ouvrez l'API voulue depuis les résultats, puis cliquez sur **Activer** :

![La page produit Google Ads API dans Google Cloud avec le bouton Activer](/images/docs/service-account/cloud-enable-google-ads-api.png)

## Étape 3 : Créer le compte de service

1. Dans la Cloud Console, allez dans **API et services → Identifiants** et cliquez sur **Créer des identifiants → Compte de service** (**IAM et administration → Comptes de service → Créer un compte de service** mène au même formulaire)
2. Remplissez le formulaire qui s'ouvre
3. Donnez-lui un nom comme `aidata-stream` - l'adresse e-mail générée sous le champ du nom est celle avec laquelle vous partagerez vos propriétés
4. Cliquez sur **Créer et continuer**
5. **Ignorez les deux étapes facultatives** (« Autoriser ce compte de service à accéder au projet » et « Autoriser les utilisateurs à accéder à ce compte de service ») - le compte de service n'a besoin d'**aucun rôle** dans votre projet Cloud. Son accès provient entièrement du partage que vous ferez à l'étape 5.
6. Cliquez sur **OK**

![Le menu Créer des identifiants ouvert dans Google Cloud, avec l'option Compte de service sous Clé API et ID client OAuth](/images/docs/service-account/cloud-create-service-account.png)

## Étape 4 : Créer une clé JSON

1. Sur la page Comptes de service, cliquez sur le compte que vous venez de créer
2. Ouvrez l'onglet **Clés**
3. Cliquez sur **Ajouter une clé → Créer une clé**
4. Choisissez **JSON** et cliquez sur **Créer**

Un fichier `.json` est téléchargé sur votre ordinateur. Ce fichier *est* le mot de passe du compte de service - quiconque le détient peut lire toutes les données que vous partagez avec le compte de service. Conservez-le donc comme n'importe quel identifiant et ne le versionnez pas dans un dépôt de code.

Ouvrez le fichier dans un éditeur de texte et repérez le champ `client_email` :

```json
{
  "type": "service_account",
  "project_id": "aidata-connections",
  "client_email": "aidata-stream@aidata-connections.iam.gserviceaccount.com",
  ...
}
```

C'est cette adresse e-mail que vous ajouterez à chaque plateforme à l'étape suivante.

> **Erreur « La création de clé est désactivée » ?** Les organisations Google Cloud récentes bloquent les clés de compte de service par défaut (la règle `iam.disableServiceAccountKeyCreation`). L'administrateur de votre organisation peut autoriser la création de clés pour ce projet. Les comptes Google personnels ne sont pas concernés.

![L'onglet Clés du compte de service avec le menu Ajouter une clé ouvert sur Créer une clé](/images/docs/service-account/cloud-create-json-key.png)

## Étape 5 : Accorder l'accès sur chaque plateforme

Ajoutez l'adresse `client_email` comme utilisateur partout où la connexion doit accéder. AI Data Stream est en lecture seule, donc le rôle de lecture le plus bas suffit partout.

### Google Analytics 4

1. Dans [Google Analytics](https://analytics.google.com/), ouvrez la propriété et allez dans **Administration**
2. Dans la colonne **Propriété**, cliquez sur **Gestion de l'accès à la propriété**
3. Cliquez sur **+** → **Ajouter des utilisateurs**
4. Saisissez l'adresse e-mail du compte de service
5. Décochez **Informer les nouveaux utilisateurs par e-mail** (un compte de service ne peut pas recevoir de courrier)
6. Choisissez le rôle **Lecteur** et cliquez sur **Ajouter**

Le rôle Lecteur couvre tout ce dont l'IA a besoin pour l'analyse. Choisissez **Éditeur** uniquement si vous voulez que les [annotations](/fr/docs/annotations/) d'AI Data Stream soient synchronisées dans GA4 comme annotations natives - leur création exige des droits d'édition.

### Google Search Console

Vous devez être **Propriétaire** de la propriété Search Console pour ajouter des utilisateurs.

1. Dans [Search Console](https://search.google.com/search-console), sélectionnez la propriété
2. Allez dans **Paramètres → Utilisateurs et autorisations**
3. Cliquez sur **Ajouter un utilisateur**
4. Saisissez l'adresse e-mail du compte de service
5. Choisissez l'autorisation **Totale** et cliquez sur **Ajouter**

L'autorisation Totale reste en lecture seule pour notre usage et garde toutes les fonctionnalités opérationnelles, y compris l'inspection d'URL. **Restreinte** fonctionne aussi si vous n'avez besoin que des données de performance de recherche.

### Google Tag Manager

1. Dans [Tag Manager](https://tagmanager.google.com/), allez dans **Admin**
2. Dans la colonne **Compte**, cliquez sur **Gestion des utilisateurs**
3. Cliquez sur **+** → **Ajouter des utilisateurs**
4. Saisissez l'adresse e-mail du compte de service
5. Définissez l'autorisation du compte sur **Utilisateur**
6. Sous les autorisations de conteneur, donnez l'accès **Lire** aux conteneurs à connecter
7. Cliquez sur **Inviter** - les comptes de service sont ajoutés sans avoir à accepter l'invitation

### Google Ads

Google Ads accepte les comptes de service comme utilisateurs directs - aucune invitation par e-mail à accepter.

1. Dans [Google Ads](https://ads.google.com/), ouvrez le compte publicitaire et allez dans **Administrateur → Accès et sécurité**
2. Dans l'onglet **Utilisateurs**, cliquez sur **+**
3. Saisissez l'adresse e-mail du compte de service
4. Sélectionnez le niveau d'accès **Lecture seule** - il couvre tout le reporting
5. Cliquez sur **Ajouter un compte**

![Formulaire d'invitation Google Ads avec une adresse de compte de service saisie et les niveaux d'accès mis en évidence](/images/docs/service-account/google-ads-sa-add-access.png)

*Image issue de la [documentation de l'API Google Ads](https://developers.google.com/google-ads/api/docs/oauth/service-accounts), utilisée sous licence CC BY 4.0.*

Ajoutez le compte de service au **compte publicitaire lui-même**, et pas uniquement au compte administrateur au-dessus - les comptes administrateur ne peuvent pas faire l'objet de rapports. Une fois l'accès accordé, nous listons les comptes accessibles et vous choisissez dans une liste déroulante : inutile de chercher le numéro client vous-même.

Rappel : vous avez toujours besoin d'un [token développeur avec accès Basic](/fr/docs/connecting-data-sources/#google-ads) au moment de créer la connexion.

## Étape 6 : Connecter dans AI Data Stream

1. Allez dans votre propriété et cliquez sur **Ajouter une connexion**
2. Sélectionnez le type de connexion (Google Analytics 4, Search Console, Tag Manager ou Google Ads)
3. Choisissez **Compte de service** comme méthode d'authentification - Google Ads passe cette étape, faute d'autre méthode
4. Ouvrez le fichier `.json` téléchargé dans un éditeur de texte, copiez **l'intégralité du contenu** (y compris les accolades `{ }` extérieures) et collez-le dans le champ des identifiants
5. Pour Google Ads uniquement : saisissez aussi votre **token développeur**. Lister les comptes est lui-même un appel API, rien n'apparaît donc tant que le token n'est pas renseigné
6. Nous listons toutes les propriétés visibles par le compte de service - sélectionnez-en une et cliquez sur **Ajouter la connexion**

Répétez l'opération pour chaque type de connexion. Le même JSON fonctionne pour tous, tant que l'API correspondante est activée et que l'accès a été accordé.

## Révoquer l'accès

Vous gardez le contrôle des deux côtés, et pouvez révoquer à tout moment :

- **Retirer une plateforme :** supprimez l'entrée utilisateur du compte de service dans GA4 / Search Console / Tag Manager / Google Ads. La connexion perd immédiatement l'accès à cette plateforme.
- **Neutraliser la clé :** dans la Cloud Console, ouvrez l'onglet **Clés** du compte de service et supprimez la clé. Toutes les connexions utilisant ce JSON cessent de fonctionner.
- **Supprimer la connexion :** supprimer la connexion dans AI Data Stream efface les identifiants stockés de notre côté.

## Dépannage

**« Aucune propriété trouvée » lors de la connexion**

- Le compte de service n'a pas encore reçu l'accès, ou l'accès a été accordé au mauvais compte - vérifiez que vous avez bien ajouté l'adresse `client_email` exacte du JSON
- L'accès peut prendre quelques minutes à se propager après l'ajout de l'utilisateur - patientez et réessayez
- Pour GA4, vérifiez que la **Google Analytics Admin API** est activée (c'est elle qui liste les propriétés)
- Pour Google Ads, vérifiez que le token développeur est renseigné - sans lui nous ne pouvons rien lister. Les comptes administrateur eux-mêmes n'apparaissent jamais dans la liste : ils ne peuvent pas faire l'objet de rapports, seuls les comptes publicitaires qui en dépendent le peuvent

**« Format JSON invalide »**

- Collez le contenu complet du fichier, de l'accolade ouvrante `{` à l'accolade fermante `}` - un collage partiel ou la clé privée seule ne sera pas validé

**Erreur mentionnant « API has not been used in project ... or it is disabled »**

- L'API de cette connexion n'est pas activée dans le projet du compte de service - voir l'[étape 2](#étape-2--activer-les-api). Le message d'erreur contient un lien direct vers la bonne page.

**« Permission denied » sur une requête spécifique**

- Le rôle du compte de service a été réduit ou supprimé côté plateforme - vérifiez à nouveau son entrée utilisateur

**Erreurs Google Ads concernant le token développeur**

- Les comptes de service ne changent rien aux exigences du token : un token en accès test ne peut pas lire les données de campagnes réelles. Consultez le [guide du token développeur](/fr/docs/connecting-data-sources/#google-ads) pour obtenir l'accès Basic.

**Google Ads `DEVELOPER_TOKEN_PROHIBITED`**

- Votre token développeur et le projet Cloud hébergeant le compte de service ne sont pas associés. Un token est lié définitivement au premier projet Cloud depuis lequel il est utilisé : servez-vous du compte de service dans ce même projet - ou, si le token n'a jamais servi, ce premier appel est justement ce qui les associe.

## Prochaines étapes

- [Connexion des sources de données](/fr/docs/connecting-data-sources/) - tous les types de connexion, et le guide du token développeur Google Ads
- [Démarrer une conversation avec vos données](/fr/docs/using-ai-chat/)
- [Comprendre le BYOK](/fr/docs/byok-explained/) - la même idée d'identifiants apportés par vous, appliquée aux fournisseurs d'IA
