Сценарий, вероятно, не обязательно нуждается в , чтобы быть в голове, даже если Facebook рекомендует это по умолчанию. До тех пор, пока вы явно не вызовете функцию fbq
где-либо до внедрения фрагмента кода, она должна работать нормально.
Вопрос, однако, в том, насколько существенным является улучшение - встраивать код уже написано в гостях, что фактический SDK загружается асинхронно.
Блок <script>
, который встраивает SDK, может блокировать синтаксический анализатор, но вы не можете включить async
или defer
встроенные сценарии, которые не будут иметь никакого эффекта. Помещение этого кода во внешний файл, а затем встраивание его с помощью asyn c или defer может помочь в этом отношении.
Другой вариант - вообще не использовать скрипт, а отслеживать все события, которые вам нужно отслеживать, используя альтернативу изображения.
https://developers.facebook.com/docs/facebook-pixel/advanced#installing -пиксельное использование-тег-img-тег :
Если вы необходимо установить пиксель, используя облегченную реализацию, вы можете установить его с тегом <img>
.
«Установить» здесь немного вводит в заблуждение - это только отследит указанное событие c это указано в параметрах URL изображения. Кроме того, вам придется самостоятельно выполнять все отслеживание, автоматики больше не будет. Простое событие просмотра страницы по умолчанию, которое вы можете отследить, вставив изображение непосредственно в код HTML; если вам нужно динамически отслеживать какие-либо события, то вы можете использовать JavaScript для создания нового объекта Image
и назначить соответствующий URL-адрес, чтобы браузер получал его в фоновом режиме.
Существует Несколько дополнительных ограничений, упомянутых в документах, проверьте, можете ли вы жить с ними, если вы хотите попробовать этот маршрут.
Если вам нужно было учесть дополнительные факторы, такие как соблюдение GDPR, - вам придется справиться с этим. это полностью самостоятельно, если вы используете изображения для отслеживания. (В SDK есть методы для приостановки отслеживания на основе согласия пользователя ie, https://developers.facebook.com/docs/facebook-pixel/implementation/gdpr)
Третьим вариантом может быть попытка изменить код, который встраивает Сам SDK.
Фрагменты кода создают функцию fbq
, если она еще не существует. Любые последующие обращения к нему помещают событие для отслеживания в «стек», который затем обрабатывается после загрузки файла SDK. Таким образом, теоретически это можно переписать, например, таким образом, чтобы он не вставлял узел script
для немедленной загрузки SDK, а задерживал его, используя тайм-аут. Это все равно должно работать точно так же (теоретически я не проверял это явно) - до тех пор, пока события помещаются в упомянутый стек, не должно иметь значения, когда или как загружается SDK. (Слишком большой тайм-аут может привести к переходу пользователей на другие страницы до того, как произойдет какое-либо отслеживание.)
И последнее, но не менее важное, что я бы назвал «хорошей кармой» - удаление отслеживания в целом, и все сопутствующие нарушения, профилирование и общее нарушение конфиденциальности, которые идут с ним :-) Это, вероятно, не вариант для всех, и если вы запускаете рекламные кампании в Facebook или аналогичные, это может быть не один вообще. Но в тех случаях, когда это чисто для целей «я хочу понять, что пользователи делают на моем сайте», локальная установка Matomo или аналогичная может подойти так же хорошо, если не лучше.