Envoyer des événements

Vous pouvez suivre ce guide de démarrage rapide pour vous familiariser avec l'envoi de données d'événement.

Les données d'événement constituent une source de données supplémentaire pour les conversions de vos balises. Elles permettent de maximiser les signaux d'interaction avec les annonces, de renforcer vos données et d'améliorer vos performances globales.

Choisissez la version du guide que vous souhaitez consulter :

Dans ce guide de démarrage rapide, vous allez effectuer les étapes suivantes :

  1. Préparez un Destination pour recevoir les données d'événement.
  2. Préparez les données d'événement à envoyer.
  3. Créez une requête IngestionService pour les événements.
  4. Envoyez la requête avec Google APIs Explorer.
  5. Comprendre les réponses de réussite et d'échec

Préparer une destination

Avant de pouvoir envoyer des données, vous devez préparer la destination vers laquelle les envoyer. Voici un exemple de Destination que vous pouvez utiliser :

    {
      "operatingAccount": {
        "product": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },

      "productDestinationId": "CONVERSION_ACTION_1_ID"
    }
  • Définissez le accountId du operatingAccount sur l'ID du compte Google Ads qui recevra les données d'événement. Le product de operatingAccount doit être GOOGLE_ADS.
  • Définissez productDestinationId sur l'ID de l'action de conversion pour les événements. L'action de conversion doit être une action de conversion Google Ads avec type défini sur WEBPAGE.

    Ce guide explique comment créer une requête qui envoie chaque événement à la même action de conversion. Si vous souhaitez envoyer des événements pour plusieurs actions de conversion dans la même requête, consultez Plusieurs destinations.

Préparer les données d'événement

Prenons l'exemple des données d'événement suivantes. Chaque tableau correspond à un événement de conversion. Chaque événement de conversion est associé à un code temporel, une action de conversion et une valeur de conversion.

Chaque événement peut comporter des identifiants publicitaires, comme gclid, ou des identifiants utilisateur, comme des adresses e-mail, des numéros de téléphone et des informations sur l'adresse.

Voici les données du premier événement :

Événement 1
conversion_time 2025-06-10 15:07:01-05:00
conversion_action_id 123456789
transaction_id ABC798654321
conversion_value 1.99
currency USD
gclid GCLID_1
emails
given_name John
last_name Smith-Jones
region_code us
postal_code 94045

Voici les données du deuxième événement :

Événement 2
conversion_time June 10, 2025 11:42:33PM America/New_York
conversion_action_id 123456789
transaction_id DEF999911111
conversion_value 3.25
currency eur
gclid GCLID_2
emails

zoe@EXAMPLE.COM

cloudy.sanfrancisco@gmail.com

given_name zoë
last_name pérez
region_code PT
postal_code 1229-076

Mettre en forme les données

Mettez en forme les champs comme indiqué dans le guide de mise en forme. Voici les données du premier événement après mise en forme :

Événement 1
conversion_time 2025-06-10 15:07:01-05:00
conversion_action_id 123456789
transaction_id ABC798654321
conversion_value 1.99
currency USD
gclid GCLID_1
emails
given_name john
last_name smith-jones
region_code US
postal_code 94045

Voici les données du deuxième événement après mise en forme :

Événement 2
conversion_time 2025-06-10T23:42:33-05:00
conversion_action_id 123456789
transaction_id DEF999911111
conversion_value 3.25
currency EUR
gclid GCLID_2
emails

zoe@example.com

cloudysanfrancisco@gmail.com

given_name zoë
last_name pérez
region_code PT
postal_code 1229-076

Hacher et encoder les données

De plus, les adresses e-mail, les prénoms et les noms de famille mis en forme doivent être hachés à l'aide de l'algorithme SHA-256 et encodés à l'aide de l'encodage hexadécimal ou Base64. Voici les données du premier événement après mise en forme, hachage et encodage à l'aide de l'encodage hexadécimal :

Événement 1
conversion_time 2025-06-10 15:07:01-05:00
conversion_action_id 123456789
transaction_id ABC798654321
conversion_value 1.99
currency USD
gclid GCLID_1
emails
given_name 96D9632F363564CC3032521409CF22A852F2032EEC099ED5967C0D000CEC607A
last_name DB98D2607EFFFA28AFF66975868BF54C075ECA7157E35064DCE08E20B85B1081
region_code US
postal_code 94045

Voici les données du deuxième événement après mise en forme, hachage et encodage à l'aide de l'encodage hexadécimal :

Événement 2
conversion_time 2025-06-10T23:42:33-05:00
conversion_action_id 123456789
transaction_id DEF999911111
conversion_value 3.25
currency EUR
gclid GCLID_2
emails

3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250

223EBDA6F6889B1494551BA902D9D381DAF2F642BAE055888E96343D53E9F9C4

given_name 2752B88686847FA5C86F47B94CE652B7B3F22A91C37617D451A4DB9AFA431450
last_name 6654977D57DDDD3C0329CA741B109EF6CD6430BEDD00008AAD213DF25683D77F
region_code PT
postal_code 1229-076

Convertissez les données en Event.

Convertissez les données mises en forme et hachées de chaque événement en Event. Renseignez les champs obligatoires suivants :

  • timestamp : heure à laquelle l'événement s'est produit.
  • transaction_id : identifiant unique de l'événement.
  • event_source : source de l'événement. Si elle est spécifiée, elle doit être EVENT_SOURCE_WEB.
  • ad_identifiers ou user_data : l'événement doit comporter un identifiant publicitaire ou des données utilisateur. Envoyez les deux si vous les avez pour l'événement.

Consultez la documentation de référence sur Event pour obtenir la liste complète des champs disponibles. Renseignez tous les champs pour lesquels vous disposez d'une valeur pour l'événement.

Voici un exemple de Event pour les données mises en forme, hachées et encodées du deuxième événement :

{
   "adIdentifiers": {
      "gclid": "GCLID_2"
   },
   "conversionValue": 3.25,
   "currency": "EUR",
   "timestamp": "2025-06-10T23:42:33-05:00",
   "transactionId": "DEF999911111",
   "eventSource": "EVENT_SOURCE_WEB",
   "userData": {
      "userIdentifiers": [
         {
            "emailAddress": "3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250"
         },
         {
            "emailAddress": "223EBDA6F6889B1494551BA902D9D381DAF2F642BAE055888E96343D53E9F9C4"
         },
         {
            "address": {
              "givenName": "2752B88686847FA5C86F47B94CE652B7B3F22A91C37617D451A4DB9AFA431450",
              "familyName": "6654977D57DDDD3C0329CA741B109EF6CD6430BEDD00008AAD213DF25683D77F",
              "regionCode": "PT",
              "postalCode": "1229-076"
            }
         }
      ]
   }
}

Créer le corps de la requête

Combinez les Destination et Events pour le corps de la requête :

{
  "destinations": [
    {
      "operatingAccount": {
        "product": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },

      "productDestinationId": "CONVERSION_ACTION_1_ID"
    }
  ],
  "encoding": "HEX",
  "events": [
     {
       "adIdentifiers": {
         "gclid": "GCLID_1"
       },
       "conversionValue": 1.99,
       "currency": "USD",
       "timestamp": "2025-06-10T20:07:01Z",
       "transactionId": "ABC798654321",
       "eventSource": "EVENT_SOURCE_WEB",
       "userData": {
         "userIdentifiers": [
           {
             "address": {
               "givenName": "96D9632F363564CC3032521409CF22A852F2032EEC099ED5967C0D000CEC607A",
               "lastName": "DB98D2607EFFFA28AFF66975868BF54C075ECA7157E35064DCE08E20B85B1081",
               "regionCode": "US",
               "postalCode": "94045"
             }
           }
         ]
       }
     },
     {
       "adIdentifiers": {
         "gclid": "GCLID_2"
       },
       "conversionValue": 3.25,
       "currency": "EUR",
       "timestamp": "2025-06-11T04:42:33Z",
       "transactionId": "DEF999911111",
       "eventSource": "EVENT_SOURCE_WEB",
       "userData": {
         "userIdentifiers": [
           {
             "emailAddress": "3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250"
           },
           {
             "emailAddress": "223EBDA6F6889B1494551BA902D9D381DAF2F642BAE055888E96343D53E9F9C4"
           },
           {
             "address": {
               "givenName": "2752B88686847FA5C86F47B94CE652B7B3F22A91C37617D451A4DB9AFA431450",
               "lastName": "6654977D57DDDD3C0329CA741B109EF6CD6430BEDD00008AAD213DF25683D77F",
               "regionCode": "PT",
               "postalCode": "1229-076"
             }
           }
         ]
       }
     }
  ],
  "validateOnly": true
}
  1. Remplacez les espaces réservés dans le corps, tels que OPERATING_ACCOUNT_ID et CONVERSION_ACTION_1_ID, par les valeurs de votre compte et de votre destination.
  2. Définissez validateOnly sur true pour valider la requête sans appliquer les modifications. Lorsque vous êtes prêt à appliquer les modifications, définissez validateOnly sur false.
  3. Notez que cette requête n'utilise pas le chiffrement.

Envoyer la requête

  1. Copiez le corps de la requête à l'aide du bouton de copie en haut à droite de l'exemple.
  2. Accédez à la page events.ingest.
  3. Cliquez sur le bouton API à droite, puis sur le bouton Essayer dans la section développée.
  4. Collez le corps de la requête copié dans la zone Corps de la requête.
  5. Cliquez sur le bouton Exécuter, répondez aux invites d'autorisation et examinez la réponse.

Réponses de réussite

Une requête réussie renvoie une réponse avec un objet contenant un requestId.

{
  "requestId": "126365e1-16d0-4c81-9de9-f362711e250a"
}

Réponses d'échec

Une requête ayant échoué génère un code d'état de réponse d'erreur tel que 400 Bad Request, ainsi qu'une réponse contenant des informations sur l'erreur.

Par exemple, un email_address contenant une chaîne de texte brut au lieu d'une valeur encodée en hexadécimal produit la réponse suivante :

{
  "error": {
    "code": 400,
    "message": "There was a problem with the request.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "INVALID_ARGUMENT",
        "domain": "datamanager.googleapis.com"
      },
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "events.events[0].user_data.user_identifiers",
            "description": "Email is not hex encoded.",
            "reason": "INVALID_HEX_ENCODING"
          }
        ]
      }
    ]
  }
}

Un email_address non haché et uniquement encodé en hexadécimal produit la réponse suivante :

{
  "error": {
    "code": 400,
    "message": "There was a problem with the request.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "INVALID_ARGUMENT",
        "domain": "datamanager.googleapis.com"
      },
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "events.events[0]",
            "reason": "INVALID_SHA256_FORMAT"
          }
        ]
      }
    ]
  }
}

Envoyer des événements pour plusieurs destinations

Si vos données contiennent des événements pour différentes destinations, vous pouvez les envoyer dans la même requête en utilisant des références de destination.

Par exemple, si vous avez un événement pour l'ID d'action de conversion 123456789 et un autre événement pour l'ID d'action de conversion 777111122, envoyez les deux événements dans une seule requête en définissant le reference de chaque Destination. Le reference est défini par l'utilisateur. La seule exigence est que chaque Destination possède un reference unique. Voici la liste destinations modifiée pour la demande :

  "destinations": [
    {
      "operatingAccount": {
        "product": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },

      "productDestinationId": "123456789"
      "reference": "conversion_action_1"
    },
    {
      "operatingAccount": {
        "product": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },

      "productDestinationId": "777111122"
      "reference": "conversion_action_2"
    }
  ]

Définissez le destination_references de chaque Event pour l'envoyer à une ou plusieurs destinations spécifiques. Par exemple, voici un Event qui ne concerne que le premier Destination. Sa liste destination_references ne contient donc que le reference du premier Destination :

{
   "adIdentifiers": {
      "gclid": "GCLID_1"
   },
   "conversionValue": 1.99,
   "currency": "USD",
   "timestamp": "2025-06-10T20:07:01Z",
   "transactionId": "ABC798654321",
   "eventSource": "EVENT_SOURCE_WEB",
   "destinationReferences": [
      "conversion_action_1"
   ]
}

Le champ destination_references est une liste. Vous pouvez donc spécifier plusieurs destinations pour un événement. Si vous ne définissez pas le destination_references d'un Event, l'API Data Manager envoie l'événement à toutes les destinations de la requête.

Étapes suivantes