Как настроить динамический ремаркетинг в Google Ads для интернет-магазина Shopify
В этой статье мы расскажем о продвинутом типе ремаркетинга — динамическом ремаркетинге — и как настроить динамический ремаркетинг в Google Ads для интернет-магазина на платформе Shopify.
Ремаркетинг — это тип рекламной технологии, которая позволяет рекламодателям «следовать» за пользователями на других веб-сайтах. Например, вы продаете устройства для чтения электронных книг. Когда пользователь переходит на ваш веб-сайт и просматривает ваш продукт, вы можете передать данные в Google Ads, и система автоматически создаст объявления с вашими продуктами, чтобы показывать их на других веб-сайтах вашим посетителям. Поэтому, как только ваш посетитель перейдет на другой веб-сайт, на котором размещена реклама из сети Google, чтобы прочитать статью об устройствах для чтения электронных книг, Google Ads покажет ему рекламу ваших продуктов, и если он нажмет на нее, он вернется на ваш веб-сайт.
Итак, давайте выясним, что такое динамический ремаркетинг, как его настроить, и как он может помочь вам повысить конверсию и продажи.
Что такое динамический ремаркетинг
Динамический ремаркетинг — это более продвинутый тип рекламной технологии, который позволяет рекламодателю показывать не просто набор товаров или случайные товары, а именно те, которые пользователь просмотрел или добавил в корзину. Это значительно увеличивает шансы на конверсию.
Динамический ремаркетинг также позволяет автоматически создавать рекламу вместо того, чтобы вручную создавать объявления для всех продуктов, которые может просмотреть пользователь, что экономит много времени.
Мы настроим контекстную рекламу для вашего интернет-магазина, и вы начнете получать прибыль через 60 дней. Если нет, следующий месяц наших услуг — бесплатно.
Для чего нужен динамический ремаркетинг
Это полезный инструмент, который увеличивает шансы на продажу, постоянно напоминая пользователям о товарах, которые они просмотрели. Многочисленные тесты и кейсы показывают, что динамический ремаркетинг приносит прибыль.
Если у вас есть онлайн-магазин на Shopify, динамический ремаркетинг — лучший выбор для таргетинга прошлых посетителей и тех, кто бросил корзину покупок. Настройка динамического ремаркетинга требует немного терпения и знаний. У нас есть большой опыт работы с PPC для онлайн-магазинов, и мы рады поделиться своей экспертизой с вами.
Из видео ниже вы узнаете, как начать работу с фидом, тегом и списками ремаркетинга, необходимыми для динамического ремаркетинга:
Как настроить динамический ремаркетинг в Shopify
Перед началом настройки динамического ремаркетинга нужно проверить и убедиться в корректности следующих настроек:
- Аккаунт Google Merchant Center связан с аккаунтом Google Ads.
- Аккаунт Google Analytics установлен в Shopify. Электронная коммерция включена на уровне Shopify и в аккаунте Google Analytics.
- В аккаунте Google Analytics созданы пользовательские параметры: ecomm_prodid, ecomm_pagetype, ecomm_totalvalue.
Для динамического ремаркетинга Google Ads в Shopify требуются дополнительные настройки: идентификаторы товаров, тип страницы, стоимость товара.
Все данные можно передавать двумя способами: напрямую в Google Analytics или через Google Ads с помощью тега ремаркетинга. Вы можете использовать их как сразу, так и по отдельности, в зависимости от ваших целей.
Внимание! Инструкция ниже требует навыков редактирования кода. Если у вас его нет или у вас мало времени на изучение, наша команда будет рада помочь с настройкой динамического ремаркетинга для вашего магазина Shopify.
Настройка передачи данных о товарах в Google Analytics
Вам понадобится дополнительный тег ремаркетинга в вашем аккаунте на Shopify для правильной передачи данных. Пошаговая инструкция, как разместить его в аккаунте на Shopify:
- В левом меню нужно выбрать раздел «Online Store».
- Перейдите в раздел «Themes» (1). В раскрывающемся меню «Actions» (2), выберите редактирование кода («Edit code») (3).
В папке «Snippets» нужно создать новый сниппет и назвать его dynamic-remarketing.liquid. Затем разместите следующий код:
<!-- START Google Ads dynamic remarketing by DigitalDarts.com.au v1.3 -->
{%- assign product-id = "variant-id" -%}{%- comment -%}The format of the product IDs in the feed. 3 accepted values "sku" (SKU of the variant e.g. aga-012), "variant-id" (variant ID e.g. 21283160948841), or "product-id_variant-id" (product ID underscore then variant ID e.g. 28541777444969_21283160948841).{%- endcomment -%}
{%- assign product-id-prefix = "" -%}{%- comment -%}Prefix to product-id. Leave blank if there's no prefix. This is likely needed if product-id_variant-id is selected so 123456_789012 becomes shopify_AU_28541777444969_21283160948841.{%- endcomment -%}
{%- assign price-decimal-fs = false -%}{%- comment -%}If the decimal separator is a full stop like in USD and AUD currencies, set to true. If it is a comma like in some European countries, set to false.{%- endcomment -%}
{%- comment -%}Change dimension1, dimension2, and dimension3 on line 16 to match your custom dimension number in Google Analytics.{%- endcomment -%}
{%- if template contains 'collection' or template contains 'search' or template contains 'product' or template contains 'cart' -%}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-PROPERTY_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-PROPERTY_ID', { 'send_page_view': false, 'custom_map': {'dimension1': 'ecomm_prodid', 'dimension2': 'ecomm_pagetype', 'dimension3': 'ecomm_totalvalue'} });
</script>
<script>
gtag('event', 'Dynamic Remarketing', {
'ecomm_pagetype': '{% if template contains 'collection' %}category{% elsif template contains 'search' %}searchresults{% elsif template contains 'product' %}product{% elsif template contains 'cart' %}cart{% endif %}'
{%- if product-id == "product-id_variant-id" -%}
, 'ecomm_prodid': {% if template contains 'product' -%}
'{{ product-id-prefix }}{{ product.id }}_{{ product.selected_or_first_available_variant.id }}'
{%- elsif template contains 'collection' -%}
[{% for item in collection.products limit:4 %}'{{ product-id-prefix }}{{ item.id }}_{{ item.selected_or_first_available_variant.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'search' -%}
[{% for item in search.results limit:4 %}'{{ product-id-prefix }}{{ item.id }}_{{ item.selected_or_first_available_variant.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'cart' -%}
[{%- for item in cart.items -%}'{{ product-id-prefix }}{{ item.product_id }}_{{ item.variant_id }}'
{%- unless forloop.last -%}, {%- endunless -%}
{%- endfor -%}]
{%- endif -%}
{%- elsif product-id == 'variant-id' -%}
, 'ecomm_prodid': {% if template contains 'product' -%}
'{{ product-id-prefix }}{{ product.selected_or_first_available_variant.id }}'
{%- elsif template contains 'collection' -%}
[{% for item in collection.products limit: 4 %}'{{ product-id-prefix }}{{ item.variants.first.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'search' -%}
[{% for item in search.results limit: 4 %}'{{ product-id-prefix }}{{ item.variants.first.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'cart' -%}
[{%- for item in cart.items -%}'{{ product-id-prefix }}{{ item.variant_id }}'
{%- unless forloop.last -%}, {%- endunless -%}
{%- endfor -%}]
{%- endif -%}
{%- elsif product-id == 'sku' -%}
, 'ecomm_prodid': {% if template contains 'product' -%}
'{{ product-id-prefix }}{{ product.selected_or_first_available_variant.sku }}'
{%- elsif template contains 'collection' -%}
[{% for item in collection.products limit: 4 %}'{{ product-id-prefix }}{{ item.selected_or_first_available_variant.sku }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'search' -%}
[{% for item in search.results limit: 4 %}'{{ product-id-prefix }}{{ item.selected_or_first_available_variant.sku }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif template contains 'cart' -%}
[{%- for item in cart.items -%}'{{ product-id-prefix }}{{ item.sku }}'
{%- unless forloop.last -%}, {%- endunless -%}
{%- endfor -%}]
{%- endif -%}
{%- endif -%}
{%- if price-decimal-fs == true -%}
{%- if template contains 'product' -%}
{%- assign product-price = product.price_min | money_without_currency | remove: ',' -%}
{%- elsif template contains 'cart' -%}
{%- assign product-price = cart.total_price | money_without_currency | remove: ',' -%}
{%- endif -%}
{%- else -%}
{%- if template contains 'product' -%}
{%- assign product-price = product.price_min | money_without_currency | remove: '.' | replace: ',', '.' -%}
{%- elsif template contains 'cart' -%}
{%- assign product-price = cart.total_price | money_without_currency | remove: '.' | replace: ',', '.' -%}
{%- endif -%}
{%- endif -%}
{%- if template contains 'product' or template contains 'cart' -%}
, 'ecomm_totalvalue': {% if template contains 'product' -%}
{{ product-price -}}
{%- elsif template contains 'cart' -%}
{{ product-price -}}
{%- endif -%}
{%- endif -%}, 'non_interaction': true });
</script>
{%- endif %}
<!-- END Google Ads dynamic remarketing by DigitalDarts.com.au →
Необходимо внести корректировки в код, чтобы адаптировать под проект:
- Замените UA-PROPERTY_ID на номер счетчика Google Analytics
- Если пользовательские параметры в Google Analytics созданы в другой последовательности, приведите в соответствие номер параметра и его значение для dimension1, dimension2, и dimension3.
- В коде ID продукта задан в формате, соответствующем формату, передаваемому в Google Merchant Center с помощью приложения DataFeedWatch (подробнее о совпадении идентификаторов в разделе «Настройка Google Merchant Center»). Если в вашем случае иная ситуация, задайте подходящее значение во 2 строчке кода:{%- assign product-id = “product-id_variant-id” -%}
В комментарии к этой строке в самом коде указаны возможные варианты и их конечный вид.
Если вы не знаете, какой именно тип идентификатора продукта вам нужен, ознакомьтесь с последним разделом этой статьи: «Настройка Google Merchant Center».
- Если необходимо передавать префикс перед ID продукта, то в строчке {%- assign product-id-prefix = “” -%} нужно указать его (IE, US, AU,…). В данном варианте кода префикс не используется, и значение переменной оставлено пустым.
- Сохраните изменения.
Следующий этап. В разделе Themes в списке слева нужно найти theme.liquid, открыть его и разместить в нем строку {% include ‘dynamic-remarketing’ %} сразу после открывающего тега <head>.
Сохранить изменения.
Далее нужно разместить альтернативную версию кода в Корзине.
Для этого перейдите в раздел Settings (1) и выберите Checkout (2).
В окне Additional scripts разместите следующий альтернативный код:
<!-- START Google Ads dynamic remarketing by DigitalDarts.com.au v1.3 -->
{%- assign product-id = "variant-id" -%}{%- comment -%}The format of the product IDs in the feed. 3 accepted values "sku" (SKU of the variant e.g. aga-012), "variant-id" (variant ID e.g. 21283160948841), or "product-id_variant-id" (product ID underscore then variant ID e.g. 28541777444969_21283160948841).{%- endcomment -%}
{%- assign product-id-prefix = "" -%}{%- comment -%}Prefix to product-id. Leave blank if there's no prefix. This is likely needed if product-id_variant-id is selected so 123456_789012 becomes shopify_AU_28541777444969_21283160948841.{%- endcomment -%}
{%- assign price-decimal-fs = false -%}{%- comment -%}If the decimal separator is a full stop like in USD and AUD currencies, set to true. If it is a comma like in some European countries, set to false.{%- endcomment -%}
{%- comment -%}Change dimension1, dimension2, and dimension3 on line 15 to match your custom dimension number in Google Analytics.{%- endcomment -%}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-PROPERTY_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-PROPERTY_ID', { 'send_page_view': false, 'custom_map': {'dimension1': 'ecomm_prodid', 'dimension2': 'ecomm_pagetype', 'dimension3': 'ecomm_totalvalue'} });
</script>
<script>
gtag('event', 'Dynamic Remarketing', { 'ecomm_pagetype': 'purchase'
{%- if product-id == "product-id_variant-id" -%}
, 'ecomm_prodid': [{% for item in checkout.line_items %}'{{ product-id-prefix }}{{ item.product_id }}_{{ item.variant_id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif product-id == 'variant-id' -%}
, 'ecomm_prodid': [{% for item in checkout.line_items %}'{{ product-id-prefix }}{{ item.variant_id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- elsif product-id == 'sku' -%}
, 'ecomm_prodid': [{% for item in checkout.line_items %}'{{ product-id-prefix }}{{ item.sku }}'{% unless forloop.last %}, {% endunless %}{% endfor %}]
{%- endif -%}
, 'ecomm_totalvalue': {% if price-decimal-fs == true -%}{{ checkout.total_price | money_without_currency | remove: ',' }}{% else %}{{ checkout.total_price | money_without_currency | remove: '.' | replace: ',', '.' }}{%- endif -%}
, 'non_interaction': true });
</script>
<!-- END Google Ads dynamic remarketing by DigitalDarts.com.au -->
Проделайте то же, что и для кода в Themes: заменить UA-PROPERTY_ID, в правильном порядке расположите пользовательские параметры, выберите нужное значение для product-id.
Проверить корректность передачи нужных параметров можно с помощью расширения Tag Assistant. Если все настроено корректно, то по тегу Google Analytics будут передаваться пользовательские значения, как на картинке ниже:
Настройка передачи данных о товарах в тег Google Ads для динамического ремаркетинга
Другой способ настроить передачу данных для динамического ремаркетинга — использовать тег Google Ads.
Для этого в theme.liquid разместите код:
<!-- Global site tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXXX');
</script>
<script>
var _data = {'send_to': 'AW-XXXXXXXXX', 'ecomm_pagetype':'other'};
{% if template contains 'cart' %}
_data["ecomm_pagetype"] = 'cart';
_data["ecomm_prodid"] = [{% for item in cart.items %}'shopify_{{ shopify_store_country }}_{{ item.product.id }}_{{ item.variant.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}];
_data["ecomm_totalvalue"] = '{{ cart.total_price | money_without_currency | remove: ',' }}';
{% elsif template contains 'collection' %}
var _prodid = [{% for item in collection.products limit:5 %}'shopify_{{ shopify_store_country }}_{{ item.id }}_{{ item.variants.first.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}];
_data["ecomm_pagetype"] = 'category';
_data["ecomm_category"] = '{{ collection.handle }}';
{% elsif template contains 'index' %}
_data["ecomm_pagetype"] = 'home';
{% elsif template contains 'product' %}
_data["ecomm_prodid"] = 'shopify_{{ shopify_store_country }}_{{ product.id }}_{{ product.selected_or_first_available_variant.id }}';
_data["ecomm_pagetype"] = 'product';
_data["ecomm_totalvalue"] = '{{ product.selected_or_first_available_variant.price | money_without_currency | remove: ',' }}';
{% elsif template contains 'search' %}
_data["ecomm_prodid"] = [{% for item in search.results limit:5 %}'shopify_{{ shopify_store_country }}_{{ item.id }}_{{ item.variants.first.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}];
_data["ecomm_pagetype"] = 'searchresults';
{% endif %}
gtag('event', 'page_view', _data);
</script>
Нужно внести корректировки в код, чтобы адаптировать под проект:
- Заменить ‘AW-XXXXXXXXX’ на номер тега Google Ads.
- В зависимости от желаемого вида Product ID, задаем нужное значение для переменной ecomm_prodid (выделены в коде), убрав все лишнее. Сейчас значение ecomm_prodid везде соответствует виду shopify_US_81191654332_1055121650148.
- Если вам понадобится значение целиком, тогда ничего не меняем, только подставляем код страны вместо {{ shopify_store_country }}
- Если нужно только числовое значение 81191654332, тогда оставляем только скобки между вторым и третьим нижним подчеркиванием каждого выделенного фрагмента кода.
- Если нужно только числовое значение 1055121650148, тогда оставляем только скобки после третьего нижнего подчеркивания каждого выделенного фрагмента кода.
Далее в корзине размещаем код для Google Ads:
<!-- Global site tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXXX');
</script>
<!-- Event snippet for Web Order conversion page -->
<script>
// Conversion
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/{{ google_conversion_label }}',
'value': {{ checkout.subtotal_price | money_without_currency | remove: ',' }},
'currency': '{{ shop.currency }}',
'transaction_id': '{{ order.order_number }}'
});
// Remarketing
gtag('event', 'page_view', {
'send_to': 'AW-XXXXXXXXX',
'ecomm_pagetype': 'purchase',
'ecomm_prodid' : [{% for item in order.line_items %}'shopify_{{ shopify_store_country }}_{{ item.product.id }}_{{ item.variant.id }}'{% unless forloop.last %}, {% endunless %}{% endfor %}],
'ecomm_totalvalue' : '{{ total_price | money_without_currency | remove: ',' }}'
});
</script>
{% endif %}
Вносим корректировки в код:
- Заменяем значение AW-XXXXXXXXX на значение код Гугл Адс.
- Заменяем значение {{ google_conversion_label }} на значение конверсии Google Ads.
- В зависимости от желаемого вида Product ID, задаем нужное значение для переменной ecomm_prodid, убрав все лишнее. Сейчас значение ecomm_prodid соответствует виду shopify_US_81191654332_1055121650148.
- Если вам понадобится значение целиком, тогда ничего не меняем.
- Если нужно только числовое значение 81191654332, тогда оставляем только скобки между вторым и третьим нижним подчеркиванием каждого выделенного фрагмента кода.
- Если нужно только числовое значение 1055121650148, тогда оставляем только скобки после третьего нижнего подчеркивания каждого выделенного фрагмента кода.
Настройка Google Merchant Center
В случае с Shopify передавать фид данных можно с помощью нескольких приложений, доступных в Shopify App Store. Если требуется один фид на небольшое количество продуктов с таргетингом на одну страну, то можно использовать бесплатные приложения. Если нужны разные фиды под разные страны, тогда оптимальным решением будет использовать платное приложение DataFeedWatch.
Фид создается по-разному, в зависимости от выбранного способа передачи фида из Shopify в Merchant Center. Если это бесплатное приложение Google Shopping, данные загружаются по API. Если это фид DataFeedWatch, то фид загружается по указанному URL фида.
Как определить актуальный тип Product ID в Google Merchant Center
В зависимости от выбранного приложения, для передачи фида и настроек в нем, тип передаваемого Product ID будет отличаться. Важно, чтобы тип Product ID был един для всех систем.
Чтобы узнать, какой формат Product ID передается в Merchant Center, нужно перейти в раздел «Все товары» и посмотреть значения в столбце «Идентификатор».
Как узнать, какому именно типу идентификатора продукта соответствует этот набор цифр? Самый простой способ: скорректировать код передачи идентификатора продукта в Google Analytics или Google Ads.
- В Google Ads для переменной ecomm_prodid нужно передавать значение, указанное в коде по умолчанию. Оно соответствует виду shopify_US_81191654332_1055121650148.
- В Google Analytics нужно последовать инструкции в начале кода и для переменной product-id указать значение “product-id_variant-id”.
- Далее перейдите на сайт и с помощью Tag Assistant посмотрите, какой из передаваемых идентификаторов соответствует идентификатору товара в Merchant Center.
- Скорректируйте код Google Analytics или Google Ads под тот тип идентификатора продукта, который передается в ваш фид.
Все готово для создания кампаний динамического ремаркетинга.
Примечание
Скрипт для динамического ремаркетинга Google Ads в Shopify был взят с сайта digitaldarts.com.au. Мы широко использовали его в своей работе, и он оказался очень полезным. Автор опубликовал единый скрипт динамического ремаркетинга как для Google Analytics, так и для Google Ads.
Поделитесь в комментариях, какой скрипт вы использовали и какой результат он принес.

Ксения Волокитина
Специалист по performance-маркетингу, работающая с контекстной рекламой с 2016 года. Специализируется на платном трафике Google и Microsoft для проектов электронной коммерции и B2B. Влюблена в анализ. Когда Ксения не запускает эффективные PPC-кампании, она читает о последних тенденциях электронной коммерции и отслеживания данных.