Вы можете ознакомиться с этим кратким руководством, чтобы ознакомиться с API Data Manager. Выберите версию руководства, которую хотите просмотреть:
В этом кратком руководстве вы выполните следующие шаги:
-  Подготовьте 
Destinationдля получения данных об аудитории. - Подготовьте данные об аудитории к отправке.
 -  Создайте запрос 
IngestionServiceдля членов аудитории. - Отправьте запрос с помощью Google APIs Explorer.
 - Понимание успешных и неудачных реакций.
 
Подготовьте пункт назначения
 Прежде чем отправлять данные, необходимо подготовить пункт назначения. Вот пример Destination , который вы можете использовать:
    {
      "operatingAccount": {
        "accountType": "OPERATING_ACCOUNT_TYPE",
        "accountId": "OPERATING_ACCOUNT_ID"
      },
      "productDestinationId": "AUDIENCE_ID"
    }
Установите для параметра
operatingAccountтип учетной записи и идентификатор учетной записи, которая будет получать данные об аудитории.
Подготовка данных об аудитории
Рассмотрим следующий пример данных в файле, разделённом запятыми. Каждая строка файла соответствует одному участнику аудитории, и у каждого участника может быть до трёх адресов электронной почты.
#,email_1,email_2,email_3
1,dana@example.com,DanaM@example.com,
2,ALEXJ@example.com, AlexJ@cymbalgroup.com,alexj@altostrat.com
3,quinn@CYMBALGROUP.com,baklavainthebalkans@gmail.com  ,
4,rosario@example.org,cloudySanFrancisco@GMAIL.com,
Адреса электронной почты имеют следующие требования к форматированию и хешированию:
- Удалите все начальные, конечные и промежуточные пробелы.
 - Преобразуйте адрес электронной почты в строчные буквы.
 - Хэшируем адрес электронной почты, используя алгоритм SHA-256 .
 - Закодируйте байты хеша, используя шестнадцатеричное кодирование (hex) или кодировку Base64 . В примерах в этом руководстве используется шестнадцатеричное кодирование.
 
Вот отформатированные данные:
#,email_1,email_2,email_3
1,dana@example.com,danam@example.com,
2,alexj@example.com,alexj@cymbalgroup.com,alexj@altostrat.com
3,quinn@cymbalgroup.com,baklavainthebalkans@gmail.com,
4,rosario@example.org,cloudysanfrancisco@gmail.com,
А вот данные после хеширования и кодирования:
#,email_1,email_2,email_3
1,07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3,1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7
2,2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3,54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51,e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478
3,05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0,f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5
4,83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f,223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4
 Вот пример AudienceMember для отформатированных, хешированных и закодированных адресов электронной почты dana@example.com и danam@example.com из первой строки входных данных:
{
  "userData": {
    "userIdentifiers": [
      {
        "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
      },
      {
        "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
      }
    ]
  }
}
Создайте тело запроса
 Объедините Destination и userData для тела запроса:
{
  "destinations": [
    {
      "operatingAccount": {
        "accountType": "OPERATING_ACCOUNT_TYPE",
        "accountId": "OPERATING_ACCOUNT_ID"
      },
      "productDestinationId": "AUDIENCE_ID"
    }
  ],
  "audienceMembers": [
    {
      "userData": {
        "userIdentifiers": [
          {
            "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
          },
          {
            "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
          }
        ]
      }
    },
    {
      "userData": {
        "userIdentifiers": [
          {
            "emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3"
          },
          {
            "emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51"
          },
          {
            "emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478"
          }
        ]
      }
    },
    {
      "userData": {
        "userIdentifiers": [
          {
            "emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0"
          },
          {
            "emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5"
          }
        ]
      }
    },
    {
      "userData": {
        "userIdentifiers": [
          {
            "emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f"
          },
          {
            "emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4"
          }
        ]
      }
    }
  ],
  "consent": {
    "adUserData": "CONSENT_GRANTED",
    "adPersonalization": "CONSENT_GRANTED"
  },
  "encoding": "HEX",
  "termsOfService": {
    "customerMatchTermsOfServiceStatus": "ACCEPTED"
  },
  "validateOnly": true
}
-  Обновите заполнители в теле, такие как 
OPERATING_ACCOUNT_TYPE,OPERATING_ACCOUNT_IDиAUDIENCE_ID, значениями для вашей учетной записи и назначения. -  Установите 
validateOnlyвtrue, чтобы проверить запрос без применения изменений. Когда будете готовы применить изменения, установитеvalidateOnlyвfalse. -  Установите 
termsOfService, чтобы указать, что пользователь принял условия обслуживания Customer Match . -  Обратите внимание, что этот запрос означает, что 
consentпредоставлено, и не использует шифрование. 
Отправить запрос
- Скопируйте тело запроса с помощью кнопки «Копировать» в правом верхнем углу образца.
 - Нажмите кнопку API на панели инструментов.
 - Вставьте скопированное тело запроса в поле Текст запроса .
 - Нажмите кнопку «Выполнить» , заполните поля авторизации и просмотрите ответ.
 
Успешные ответы
 Успешный запрос возвращает ответ с объектом, содержащим requestId .
{
  "requestId": "126365e1-16d0-4c81-9de9-f362711e250a"
}
 Запишите возвращенный requestId , чтобы иметь возможность получать диагностические данные по мере обработки каждого пункта назначения в запросе.
Реакции на неудачи
 Неудачный запрос приводит к появлению кода статуса ответа об ошибке, например 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": "audience_members.audience_members[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": "audience_members.audience_members[0]",
            "reason": "INVALID_SHA256_FORMAT"
          }
        ]
      }
    ]
  }
}
Отправка событий по нескольким направлениям
Если ваши данные содержат участников аудитории для разных пунктов назначения, вы можете отправить их в одном запросе, используя ссылки на пункты назначения.
 Например, если у вас есть участник аудитории для идентификатора списка пользователей 11112222 и другой участник аудитории для идентификатора списка пользователей 77778888 , отправьте обоих участников аудитории в одном запросе, указав reference для каждого Destination . reference определяется пользователем — единственное требование заключается в том, чтобы у каждого Destination был уникальный reference . Вот изменённый список destinations для запроса: 
  "destinations": [
    {
      "operatingAccount": {
        "accountType": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },
      "productDestinationId": "11112222",
      "reference": "audience_1"
    },
    {
      "operatingAccount": {
        "accountType": "GOOGLE_ADS",
        "accountId": "OPERATING_ACCOUNT_ID"
      },
      "productDestinationId": "77778888",
      "reference": "audience_2"
    }
  ]
Настройте destination_references каждого AudienceMember , чтобы направить его на один или несколько конкретных пунктов назначения. Например, вот AudienceMember , предназначенный только для первого Destination , поэтому его список destination_references содержит только reference на первый Destination : 
{
  "userData": {
    "userIdentifiers": [
      {
        "emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
      },
      {
        "emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
      }
    ],
  }
  "destinationReferences": [
    "audience_1"
  ]
}
Поле destination_references представляет собой список, поэтому вы можете указать несколько пунктов назначения для члена аудитории. Если вы не укажете destination_references для AudienceMember , API Data Manager отправит члена аудитории во все пункты назначения в запросе.
Следующие шаги
- Настройте аутентификацию и настройте свою среду с помощью клиентской библиотеки.
 - Узнайте о требованиях к форматированию, хешированию и кодированию для каждого типа данных.
 - Узнайте, как шифровать данные пользователя .
 - Узнайте, как получить диагностику по вашим запросам.
 - Узнайте о передовом опыте .
 - Узнайте о лимитах и квотах .