Какие файлы отвечают за междоменное взаимодействие
Эта статья предназначена для владельцев сайтов, которым требуется объединить отслеживание в нескольких доменах, например на сайте для пользователей и в отдельном домене корзины для покупок. Эта статья касается ресурсов "Google Аналитика 4". Если вы используете ресурсы Universal Analytics, ознакомьтесь с этой статьей.
Междоменное отслеживание позволяет точно связывать действия в разных доменах с одним пользователем. Исходящие клики, которые обычно активируют событие, регистрируемое через улучшенную статистику, игнорируются, когда исходящая ссылка ведет в домен, включенный в междоменное отслеживание.
Стратегия того же происхождения
Запрошенный URL-адрес должен находиться в том же домене, что и URL-адрес в браузере, то есть имя домена, порт и протокол должны совпадать.
источник : = протокол + доменное имя + порт
концепция
Полное название jsonp - JSON с заполнением. Это решение для решения проблем с междоменными запросами ресурсов. Это неофициальный протокол междоменного взаимодействия данных, созданный разработчиками.
Один - это формат описательной информации, а другой - метод, согласованный обеими сторонами передачи информации.
Видеообзор
Междоменное отслеживание и файлы cookie
Google Аналитика назначает идентификаторы уникальным пользователям и сеансам с помощью собственных файлов cookie.
использовать
Сеть Внимания пирамиды для сегментации сегментации
Сеть Внимания пирамиды для сегментации сегментации Эта статья предлагает сковороду, предлагая функцию модуля привлечения пирамиды (FPA) и Global Module Atterty Upsample (GAU), вводящий очаговый ключ д.
TIDB Двоичного Источник чтение Чтение статья (7) Drainer сервер Введение
Автор: Хуан Jiahao В предыдущей статье вводится насос сервер, давайте познакомимся реализация Drainer сервера, главная роль Drainer сервера, чтобы получить Двоичный от каждого сервера насоса, и анализ.
Устранение неполадок
Если вы не можете подтвердить наличие параметра _gl в URL целевого домена, выполнив приведенные выше действия, проверьте, совпадает ли домен, настроенный в интерфейсе, с доменом, куда направляет ваш сайт.
Также возможно, что правильной работе междоменного отслеживания препятствуют настройки сайта. Обратитесь к опытному веб-разработчику, чтобы узнать, влияют ли на ваш сайт указанные ниже проблемы.
Переадресация URL
Если целевая страница перенаправляет на другой ресурс или не поддерживает произвольные параметры запроса, параметр _gl может быть удален из URL, даже если система добавила его на предыдущей странице. Обычно это происходит быстро и незаметно. Чтобы убедиться, что проблема в этом, проверьте запросы сети, отправленные предыдущей страницей, с помощью Инструментов разработчика Chrome. Чтобы устранить эту проблему, настройте сайт так, чтобы параметр _gl сохранялся во время переадресации.
Конфликты с другими скриптами
Междоменное отслеживание выполняется путем создания прослушивателя событий в узле документа на странице. Когда пользователь нажимает на ссылку, событие клика появляется в узле документа, а в URL ссылки добавляется параметр _gl . Это может не работать, если:
У браузеров есть ограничения на политику одинакового происхождения в javascript. Например, js в a.cn не может вызывать js, объекты или данные в b.cn (поскольку a.cn и b.cn - разные домены), поэтому появляется перекрестный домен. .
LeetCode 595. Big Countries
LeetCode 595. Big Countries тема There is a table World A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million. Write a SQL solution to output bi.
Материал по настройке междоменного отслеживания для Google Analytics 4 (GA4).
Обновление (февраль 2022): я выпустил электронное руководство по Google Analytics 4. Бесплатно скачать его можно в формате .PDF по ссылке.
В моем блоге есть две статьи на тему междоменного отслеживания, одна из которых посвящена прямой настройке с помощью внедрения дополнительного кода на сайт для двух разных библиотек Google Analytics (analytics.js и gtag.js), а другая подробно описывает последовательность шагов с помощью Google Tag Manager. Рекомендую прочитать их обе:
В Google Analytics 4 разработчики максимально упростили эту настройку, и теперь она будет понятна даже начинающим пользователям и не техническим специалистам. Но перед тем, как настроить междоменное отслеживание в GA4, давайте вспомним как оно работает.
Что такое междоменное отслеживание?
Когда вы имеете несколько веб-сайтов, между которыми пользователи могут беспрепятственно перемещаться, и хотите в Google Analytics отслеживать их посещения, источники трафика, события, конверсии и другую информацию, вы должны позаботиться о корректном сборе данных с обоих доменов.
Если пользователь заходит к вам на сайт впервые, счетчик веб-аналитики создает новый файл cookie (_ga) и сохраняет его значение в браузере посетителя с уникальным идентификатором, который называется Client ID (или просто cid). Когда пользователь заходит на ваш сайт повторно, Google Analytics считывает информацию из уже созданной ранее куки _ga. И если файл куки все еще присутствует (и остается таким же), система понимает, что это один и тот же человек, поэтому все совершаемые действия в Google Analytics будут записаны одному пользователю.
Основные файлы cookie не могут быть использованы на двух разных доменах, к ним можно получить доступ только в том домене, где выполняется код JavaScript вашего счетчика Google Analytics. Поэтому когда пользователь перейдет с одного сайта на другой, Google Analytics не сможет прочитать сохраненный файл cookie исходного сайта, а на сайте, куда пользователь перешел, будет создан новый идентификатор клиента (новый _ga, новый Client ID). Система будет рассматривать вас как двух разных пользователей.
В результате, Google Analytics зафиксирует два сеанса разной продолжительности, двух пользователей с разными уникальными идентификаторами (Client ID), и вдобавок еще перезапишет источник трафика, поскольку переход с другого сайта для счетчика веб-аналитики будет считатья реферальным ( . / referral).
Междоменное отслеживание (cross-domain measurement) – функция в Google Analytics 4, которая позволяет связывать домены между собой и регистрировать посещение одного пользователя на нескольких сайтах, а также передавать значение идентификатора сессии (Session ID) и уникального идентификатора пользователя (Client ID) с одного домена на другой.
В официальной документации разработчиков Google о самом процессе написано более подробно. Он состоит из двух этапов:
- в исходном домене проверяется наличие идентификатора клиента во всех URL, указывающих на целевой домен;
- в целевом домене проверяется наличие идентификатора клиента в URL, по которому перешел пользователь.
Схематично это выглядит так:
Именно такую функцию мы и будем учиться настраивать для Google Analytics 4.
Параметр связывания _gl
В предыдущем материале мы с вами разобрали настройку междоменного отслеживания в Universal Analytics, используя конструкции кодов для двух разных библиотек (analytics.js и gtag.js), которые устанавливаются напрямую в код сайта. В этой статье еще более подробно разберем данную тему и научимся настраивать междоменное отслеживание с помощью Google Tag Manager.
Что такое междоменное отслеживание?
Когда пользователь заходит к вам на сайт впервые, счетчик веб-аналитики запускает для него новый сеанс (сессия), создает файл cookie (_ga) и сохраняет его значение в браузере посетителя с уникальным идентификатором (Client ID).
Когда пользователь переходит со страницы А на страницу Б в рамках одного сайта и сеанса, Google Analytics проверяет значение этого файла cookie. И если файл куки все еще присутствует (и остается таким же), Google Analytics понимает, что это один и тот же человек, который только что был на странице A, поэтому просмотр второй страницы Б также засчитывается тому же сеансу (при условии соблюдения длительности сеанса) и тому же пользователю.
Схематично такое поведение можно представить так:
Просмотр нескольких страниц засчитывается одному пользователю
Таким образом, создается история посещения конкретного пользователя вашего сайта, которую вы можете посмотреть в отчете Аудитория - Статистика пользователей. Например, вот такие обращения Google Analytics зафиксировал на моем сайте для пользователя с идентификатором клиента 1459332813.1632486595:
Пример взаимодействий пользователя с сайтом (Client ID - 1459332813.1632486595)
Очень напоминают карточку пользователя в CRM-системе, не правда ли? Только в этом отчете отображается подробная информация по действию конкретного пользователя на вашем сайте (просмотры страниц, достигнутые цели, конверсии, транзакции и т.д.) с привязкой к сеансам и времени совершения того или иного события.
Слева от таблицы отображается основная информация по пользователю - идентификатор клиента (он же Client ID), дата последнего посещения, тип устройства, с которого пользователь заходил на сайт, платформа устройства, источник трафика, канал, кампания. И все это благодаря тому, что Google Analytics присвоил данному пользователю Client ID (файл cookie _ga) и сохранил его в браузере, по которому теперь система может его идентифицировать.
Да, файлы cookie не являются совершенной технологией отслеживания взаимодействий пользователей с вашим сайтом и имеют ряд недостатков, поскольку привязываются к уникальной связке браузер-устройство . Если кто-то отключает использование файлов cookie, блокирует их на уровне браузера или с помощью специальных расширений/плагинов, заходит через режим инкогнито, то Google Analytics будет считать, что это были разные пользователи, и он не сможет связать такие посещения как одно целое. На сегодняшний день есть более передовые способы отслеживания поведения посетителей вашего сайта и мобильного приложения с различных устройств, например функция User ID. Но эта тема отдельной дискуссии.
Схематично такое поведение можно отобразить следующим образом:
Перезаписывание источника трафика из-за referral
Междоменное отслеживание (cross-domain measurement) – функция в Google Analytics, которая позволяет связывать домены между собой и регистрировать посещение одного пользователя на нескольких сайтах как один сеанс, благодаря передаче уникального идентификатора пользователя (Client ID) с одного домена на другой.
В официальной документации разработчиков Google о самом процессе написано более подробно. Он состоит из двух этапов:
- в исходном домене проверяется наличие идентификатора клиента во всех URL, указывающих на целевой домен;
- в целевом домене проверяется наличие идентификатора клиента в URL, по которому перешел пользователь.
Параметр allowLinker
Интеллектуальная рекомендация
Как убедиться, что междоменное отслеживание работает правильно
- Откройте страницу сайта с ссылкой или формой, которые направляют в домен, настроенный для междоменного отслеживания.
- Нажмите на ссылку или отправьте форму, чтобы перейти к целевому домену.
Если у вас также есть ресурс Universal Analytics
Для ресурса Universal Analytics вы настроили междоменное отслеживание с помощью кода (через analytics.js, gtag.js или Google Менеджер тегов). Для ресурса "Google Аналитика 4" это нужно сделать на странице "Администратор". Следуйте приведенным ниже инструкциям, чтобы добавить домены, указанные в коде страницы Universal Analytics.
Если у вас есть конфигурация в глобальном теге для ресурса Universal Analytics, она будет также применена к ресурсу "Google Аналитика 4". Все домены, указанные в коде или на странице "Администратор", будут применены к вашему ресурсу "Google Аналитика 4". Тем не менее рекомендуется выполнять настройку только на странице "Администратор".
будь осторожен
На родительской странице: родительская страница отправляет междоменную информацию на дочернюю страницу, а окно - это окно дочерней страницы, на которое указывает iframe, встроенный в родительскую страницу, а именно: iFrame.contentWindow
На дочерней странице: дочерняя страница хочет, чтобы родительская страница отправляла междоменную информацию, окно является окном родительской страницы, здесь, потому что дочерняя страница встроена в родительскую страницу, для дочерней страницы окно находится наверху или родитель
Генерация jsonp
1. прямой запрос AJAX для обычных файлов имеет проблему междоменного несанкционированного доступа, независимо от того, статическая это страница или нет
2. Однако на нас не влияет кросс-домен при вызове файлов js, например, при внедрении инфраструктуры jquery или при вызове фотографий.
3. Любой тег с атрибутом scr может пересекать домены, такие как script и img.
4. Если вы хотите получить доступ к данным в разных доменах через веб-интерфейс, есть только одна возможность, а именно: загрузить данные на удаленном сервере в файл формата js.
5. И json - это легкий формат данных, который также изначально поддерживается js.
6. Чтобы облегчить использование данных клиентом, постепенно сформировался неформальный протокол передачи. Люди называют его JSONP. Один из основных пунктов протокола - позволить пользователям передавать параметр обратного вызова на сервер.
Введение
CORS требует поддержки как браузера, так и сервера. В настоящее время все браузеры поддерживают эту функцию, и браузер IE не может быть ниже IE10. Весь процесс связи CORS автоматически завершается браузером без участия пользователя. Для разработчиков нет разницы между связью CORS и связью AJAX одного и того же происхождения, и код совершенно одинаковый. Как только браузер обнаружит, что запрос AJAX является кросс-источником, он автоматически добавит некоторую дополнительную информацию заголовка, а иногда будет сделан дополнительный запрос, но пользователь этого не почувствует.
Следовательно, ключом к реализации связи CORS является сервер. Пока сервер реализует интерфейс CORS, он может обмениваться данными между источниками.
CORS имеет ту же цель, что и JSONP, но более мощный, чем JSONP.
Настройка вручную
Мы рекомендуем настраивать междоменное отслеживание в интерфейсе Аналитики, однако могут быть сценарии, где нужно внедрять специальное решение с помощью кода отслеживания. В таких случаях его можно настроить вручную, используя команды get и set кода gtag.js API, чтобы в разных доменах сохранялись одинаковые идентификаторы.
Пример
Чтобы получить идентификатор клиента в исходном домене, воспользуйтесь методом get :
Получив идентификаторы клиента и сеанса, добавьте их в ссылку, которая направляет в целевой домен:
На целевой странице просмотрите идентификаторы с URL и настройте их с помощью команды config:
Два запроса
Фон спроса
Практика работы с регулярными выражениями
2. Непростой запрос
Что такое непростой запрос?
Непростые запросы - это запросы, которые имеют особые требования к серверу, например, метод запроса PUT или же DELETE ,или же Content-Type Тип поля - application/json
Предполетный запрос
Когда браузер обнаруживает, что это непростой запрос, он автоматически отправляет запрос «предварительной проверки», прося сервер подтвердить, что запрос может быть выполнен следующим образом.
В дополнение к вышеуказанным случаям Origin Поле, информация заголовка запроса «предпечатная проверка» включает два специальных поля:
(1)Access-Control-Request-Method
(2)Access-Control-Request-Headers
Это поле представляет собой строку с разделителями-запятыми, в которой указываются дополнительные поля заголовка, которые браузер будет отправлять в запросах CORS. Приведенный выше пример: X-Custom-Header
Ответ на предполетный запрос
После того, как сервер получит запрос на предварительную проверку
- Подтвердите, что запросы к другим источникам разрешены, и вы можете отвечать
(1)Access-Control-Allow-Methods
Это поле является обязательным, и его значение представляет собой строку, разделенную запятыми, указывающую все методы междоменного запроса, поддерживаемые сервером. Обратите внимание, что возвращаются все поддерживаемые методы, а не только метод, запрошенный браузером. Это сделано для того, чтобы избежать многократных предварительных запросов.
(2)Access-Control-Allow-Headers
Если запрос браузера включает Access-Control-Request-Headers Поле, тогда Access-Control-Allow-Headers Поле обязательно для заполнения. Это также разделенная запятыми строка, указывающая все поля заголовка, поддерживаемые сервером, не ограничиваясь полями, запрашиваемыми браузером в «предпечатной проверке».
(3)Access-Control-Allow-Credentials
Это поле имеет то же значение, что и в простом запросе.
(4)Access-Control-Max-Age
Это поле является необязательным и используется для указания срока действия этого запроса предварительной проверки в секундах. В приведенных выше результатах срок действия составляет 20 дней (1728000 секунд), что означает, что ответ может быть кэширован в течение 1728000 секунд (20 дней). В течение этого периода другой запрос предварительной проверки не требуется.
Обычный запрос и ответ браузера
После того, как сервер передал запрос «предпечатной проверки», каждый последующий нормальный запрос CORS браузера будет таким же, как и простой запрос, будет один Origin Информационное поле заголовка. В ответе сервера также будет Access-Control-Allow-Origin Информационное поле заголовка.
Ниже приведен обычный запрос CORS браузера после запроса предварительной проверки.
Над заголовком Origin Поле автоматически добавляется браузером.
Ниже приводится нормальный ответ сервера.
В информации заголовка выше, Access-Control-Allow-Origin Поле должно быть включено в каждый ответ.
❝Междоменный означает, что браузер не может выполнять скрипты других сайтов. Это вызвано политикой браузера одинакового происхождения и является ограничением безопасности, наложенным браузером на JavaScript. Так называемая гомология относится к одному и тому же доменному имени, протоколу и порту, если одно из них отличается, оно является междоменным.
❞
Как настроить междоменное отслеживание на странице "Администратор"
Для настройки междоменного отслеживания требуется роль редактора.
Проверьте тег Аналитики (например, глобальный тег на каждой HTML-странице) для всех доменов, которые нужно включить в междоменное отслеживание. Для тега на каждой странице должен использоваться одинаковый идентификатор потока данных (который начинается с префикса "G-") из одного и того же потока данных сайта.
Один простой запрос (простой запрос)
Что такое простой запрос?
- Выполнение следующих двух условий одновременно - это простая просьба.
Основной процесс
- Для простых запросов браузер напрямую выдает запросы CORS. В частности, в информации заголовка добавьте Origin Поле
OriginПоле используется для указания источника (протокол + имя домена + порт), из которого исходит этот запрос. Сервер решает, одобрять ли этот запрос на основе этого значения
Происхождение, указанное Origin, не входит в сферу действия лицензии
Доменное имя, указанное Origin, находится в разрешенном диапазоне, и ответ, возвращаемый сервером, будет содержать следующие дополнительные поля заголовка
(1) Access-Control-Allow-Origin
Обязательное поле, его значение либо по запросу Origin Значение поля или * , Что означает прием запросов на любое доменное имя.
(2)Access-Control-Allow-Credentials
Необязательно, это значение логического типа, указывающее, разрешена ли отправка файлов cookie.
Значение по умолчанию - false, что означает, что файл cookie не включается в запрос CORS. Если сервер не хочет, чтобы браузер отправлял файл cookie, просто удалите это поле.
Установлен в true , Это означает, что сервер явно разрешает, Cookie может быть включен в запрос и отправлен на сервер вместе, а разработчик должен открыть его в запросе AJAX withCredentials Атрибуты
(3)Access-Control-Expose-Headers
Cache-Control 、 Content-Language 、 Content-Type 、 Expires 、 Last-Modified 、 Pragma
Если вы хотите получить другие поля, вы должны Access-Control-Expose-Headers Указано внутри
совместимость
Видно, что postMessage хорошо поддерживается в основных основных браузерах, за исключением более ранней версии браузера IE.
грамматика
Конкретное введение можно щелкнуть здесь, чтобы перейтиMDN, Здесь для объяснения каждого параметра otherWindow.postMessage (message, targetOrigin, [transfer]);
targetOrigin Адрес (URL) целевого окна или строка '*' означает неограниченный, любой URL разрешен для отправки
Переключатель Kotlin
В Котлине нет оператора коммутатора, и это DESI. Способ Джавы: Котлин написание: .
Читайте также: