Отправка событий

Вы можете изучить это краткое руководство, чтобы ознакомиться с отправкой данных о событиях.

Используйте API диспетчера данных в любом из следующих сценариев:

  • Онлайн-события : отправляйте данные о событиях в качестве дополнительного источника данных для конверсий тегов, чтобы максимизировать сигналы взаимодействия с рекламой и улучшить ваши данные и общую эффективность.

  • Офлайн-события : отправка данных о событиях для офлайн-конверсий или расширенных конверсий для лидов .

Выберите версию руководства, которую вы хотите увидеть:

В этом кратком руководстве вы выполните следующие шаги:

  1. Подготовьте Destination для получения данных о событиях.
  2. Подготовьте данные о событии для отправки.
  3. Создайте запрос IngestionService для событий.
  4. Отправьте запрос с помощью Google APIs Explorer.
  5. Понимание успешных и неудачных реакций.

Подготовьте пункт назначения

Прежде чем отправлять данные, необходимо подготовить пункт назначения. Вот пример Destination , который вы можете использовать:

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

      "productDestinationId": "CONVERSION_ACTION_1_ID"
    }
  • В качестве accountId operatingAccount укажите идентификатор аккаунта Google Рекламы, который будет получать данные о событиях. product operatingAccount должен быть GOOGLE_ADS .
  • Установите для productDestinationId идентификатор действия-конверсии для событий. Для онлайн-событий действие-конверсия должно быть действием-конверсией Google Рекламы с type WEBPAGE . Для офлайн-событий действие-конверсией должно быть действием-конверсией Google Рекламы с type UPLOAD_CLICKS .

    В этом руководстве показано, как создать запрос, отправляющий каждое событие одному и тому же действию-конверсии. Если вы хотите отправлять события для нескольких действий-конверсий в одном запросе, см. раздел «Несколько назначений» .

Подготовка данных о событиях

Рассмотрим следующие данные о событиях. Каждая таблица соответствует одному событию-конверсии. Каждое событие-конверсия имеет метку времени, действие-конверсию и ценность конверсии.

Каждое событие может иметь идентификаторы рекламы, например gclid , или идентификаторы пользователей, например адреса электронной почты, номера телефонов и адресную информацию . Событие также может содержать информацию о пользователе, полученную на момент события , например, ценность клиента или то, является ли он новым, вернувшимся или повторно привлеченным клиентом.

Вот данные первого события:

Событие №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
family_name Smith-Jones
region_code us
postal_code 94045
customer_type NEW
customer_value_bucket HIGH

Вот данные второго события:

Событие №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ë
family_name pérez
region_code PT
postal_code 1229-076
customer_type RETURNING

Форматировать данные

Отформатируйте поля в соответствии с руководством по форматированию . Вот данные первого события после форматирования:

Событие №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
family_name smith-jones
region_code US
postal_code 94045
customer_type NEW
customer_value_bucket HIGH

Вот данные второго события после форматирования:

Событие №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ë
family_name pérez
region_code PT
postal_code 1229-076
customer_type RETURNING

Хешировать и кодировать данные

Кроме того, отформатированные адреса электронной почты, имена и фамилии должны быть хешированы с помощью алгоритма SHA-256 и закодированы в шестнадцатеричном формате или формате Base64. Вот данные первого события после форматирования, хеширования и кодирования в шестнадцатеричном формате:

Событие №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
family_name DB98D2607EFFFA28AFF66975868BF54C075ECA7157E35064DCE08E20B85B1081
region_code US
postal_code 94045
customer_type NEW
customer_value_bucket HIGH

Вот данные второго события после форматирования, хеширования и кодирования с использованием шестнадцатеричного кодирования:

Событие №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
family_name 6654977D57DDDD3C0329CA741B109EF6CD6430BEDD00008AAD213DF25683D77F
region_code PT
postal_code 1229-076
customer_type RETURNING

Преобразовать данные в Event

Преобразуйте форматированные и хешированные данные каждого события в Event . Заполните следующие обязательные поля:

  • event_timestamp : время, когда произошло событие.
  • transaction_id : уникальный идентификатор события.
  • event_source : Источник события. Обязательно для офлайн-событий . Необязательно для онлайн-событий . Если указано для онлайн-события, должно быть WEB .
  • ad_identifiers или user_data : событие должно содержать либо идентификатор рекламы, либо данные пользователя. Если у вас есть оба этих параметра для события, отправьте оба.

Полный список доступных полей см. в справочной документации Event . Заполните любое поле, в котором есть значение для события.

Вот пример Event для форматированных, хешированных и закодированных данных из второго события:

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

Создайте тело запроса

Объедините пункт Destination и Events в теле запроса:

{
  "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",
       "eventTimestamp": "2025-06-10T20:07:01Z",
       "transactionId": "ABC798654321",
       "eventSource": "WEB",
       "userData": {
         "userIdentifiers": [
           {
             "address": {
               "givenName": "96D9632F363564CC3032521409CF22A852F2032EEC099ED5967C0D000CEC607A",
               "familyName": "DB98D2607EFFFA28AFF66975868BF54C075ECA7157E35064DCE08E20B85B1081",
               "regionCode": "US",
               "postalCode": "94045"
             }
           }
         ]
       },
       "userProperties": {
         "customerType": "NEW",
         "customerValueBucket": "HIGH"
       }
     },
     {
       "adIdentifiers": {
         "gclid": "GCLID_2"
       },
       "conversionValue": 3.25,
       "currency": "EUR",
       "eventTimestamp": "2025-06-11T04:42:33Z",
       "transactionId": "DEF999911111",
       "eventSource": "WEB",
       "userData": {
         "userIdentifiers": [
           {
             "emailAddress": "3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250"
           },
           {
             "emailAddress": "223EBDA6F6889B1494551BA902D9D381DAF2F642BAE055888E96343D53E9F9C4"
           },
           {
             "address": {
               "givenName": "2752B88686847FA5C86F47B94CE652B7B3F22A91C37617D451A4DB9AFA431450",
               "familyName": "6654977D57DDDD3C0329CA741B109EF6CD6430BEDD00008AAD213DF25683D77F",
               "regionCode": "PT",
               "postalCode": "1229-076"
             }
           }
         ]
       },
       "userProperties": {
         "customerType": "RETURNING"
       }
     }
  ],
  "validateOnly": true
}
  1. Обновите заполнители в теле, такие как OPERATING_ACCOUNT_ID и CONVERSION_ACTION_1_ID , значениями для вашей учетной записи и назначения.
  2. Установите validateOnly в true , чтобы проверить запрос без применения изменений. Когда будете готовы применить изменения, установите validateOnly в false .
  3. Обратите внимание, что в этом примере шифрование не используется.

Отправить запрос

  1. Скопируйте тело запроса с помощью кнопки «Копировать» в правом верхнем углу образца.
  2. Нажмите кнопку API на панели инструментов.
  3. Вставьте скопированное тело запроса в поле Текст запроса .
  4. Нажмите кнопку «Выполнить» , заполните поля авторизации и просмотрите ответ.

Успешные ответы

Успешный запрос возвращает ответ с объектом, содержащим requestId .

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

Реакции на неудачи

Неудачный запрос приводит к появлению кода статуса ответа об ошибке, например 400 Bad Request , и ответа с подробными сведениями об ошибке.

Например, адрес email_address , содержащий обычную текстовую строку вместо шестнадцатеричного значения, дает следующий ответ:

{
  "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"
          }
        ]
      }
    ]
  }
}

Адрес email_address , который не хеширован и представлен только в шестнадцатеричном формате, возвращает следующий ответ:

{
  "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"
          }
        ]
      }
    ]
  }
}

Отправка событий по нескольким направлениям

Если ваши данные содержат события для разных пунктов назначения, вы можете отправить их в одном запросе, используя ссылки на пункты назначения.

Например, если у вас есть событие для действия-конверсии с идентификатором 123456789 и другое событие для действия-конверсии с идентификатором 777111122 , отправьте оба события в одном запросе, указав reference для каждого Destination . reference определяется пользователем — единственное требование заключается в том, чтобы у каждого Destination был уникальный reference . Вот изменённый список destinations для запроса:

  "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"
    }
  ]

Настройте destination_references каждого Event , чтобы отправить его на один или несколько конкретных пунктов назначения. Например, вот Event , которое предназначено только для первого Destination , поэтому его список destination_references содержит только reference на первый Destination :

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

Поле destination_references представляет собой список, поэтому вы можете указать несколько пунктов назначения для события. Если вы не укажете destination_references для Event , API диспетчера данных отправит событие по всем пунктам назначения в запросе.

Следующие шаги