Цель: - отправить JSON в диспетчер тегов Google.
Проблема в следующем: нет доступной переменной жидкости для «реферера» согласно документации Shopify.
Возможное решение: - создать переменную с помощью Javascript
Итак, что я сделал:
Я создал скрипт, который добавит URL-адрес веб-сайта, с которого пришли посетители.
захватить добавленный URL-адрес веб-сайта и преобразовать его в переменную
Поместите переменную {{ ref }} в JSON
Когда я проверил элемент, реферер (JSON) не имеет значения.
пожалуйста помоги
<script type = "text/javascript">
$(document).ready(function () {
var content = document.referrer;
$(".referrer").append(content);
});
</script>
{% capture ref %}
<div class = "referrer">Referrer: </div>
{% endcapture %}
<script type = "text/javascript">
dataLayer.push({
‘userEmail’ : ‘{{ customer.email }}’,
‘productCategory’ : ‘{{ collection.title }}’,
‘productName’ : ‘{{ product.title }}’,
‘price’ : ‘{{ sca_price | money }}’,
‘originalPrice’ : ‘{{ sca_price | money }}’,
‘cartItems’ : ‘{{ cart.item_count }}’,
‘currency’ : ‘{{ shop.currency }}’,
‘referrer’ : ‘{{ ref }}’, // not working
‘productRating’ : ‘’,
‘reviewCount’ : null,
‘event’ : null
});
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам не нужна переменная Shopify, чтобы найти реферера. Вам даже не нужно фиксировать его в переменной страницы и использовать. Просто обновите:
‘referrer’ : ‘{{ ref }}’, // not working
к
‘referrer’ : document.referrer,
Редактировать:
Используйте приведенный ниже код:
<script type = "text/javascript">
push_data = {
'userEmail' : '{{ customer.email }}',
'productCategory' : '{{ collection.title }}',
'productName' : '{{ product.title }}',
'price' : '{{ sca_price | money }}',
'originalPrice' : '{{ sca_price | money }}',
'cartItems' : '{{ cart.item_count }}',
'currency' : '{{ shop.currency }}',
'productRating' : '',
'reviewCount' : null,
'event' : null
}
push_data['referrer'] = document.referrer;
console.info(push_data); //remove this code. This is to only check referrer is populated
dataLayer.push(push_data);
</script>
вы можете проверить элемент здесь: ellanacosmetics.myshopify.com/collections/eyes/products/…
Цитаты, которые вы используете, неверны. Используйте двойные кавычки вместо кавычек, которые вы сейчас используете. Javascript не распознает эти цитаты. Удалите код загрузки документа, который вы используете.
если это двойная кавычка, о которой вы говорите, она все еще не работает :( prntscr.com/jofdey
Просто используйте JavaScript:
"referrer": document.referrer
не работает, когда я проверяю элемент, он показывает prntscr.com/joep3g
Проверь это. и попробуйте проверить элемент ellanacosmetics.myshopify.com/collections/eyes/products/…
не работает, когда я проверяю отображаемый элемент prntscr.com/joep3g, он просто говорит «реферер»: document.referrer,