Рекламные платформы и интернет-магазины

Трекинг конверсий в CCV Shop: руководство по настройке

Трекинг конверсий в CCV Shop: отправляйте оплаченные заказы в Meta и TikTok через подписанный вебхук, связывайте их с кликами по рекламе, настраивайте, тестируйте и учитывайте поздние платежи.

·Обновлено ·10 мин чтения·От команды ROASaurus

Главное
  • Трекинг конверсий в CCV Shop наиболее полон, когда каждый оплаченный заказ отправляется из данных заказа CCV на сервере, а на странице успешного заказа стоит сниппет, который связывает заказ с кликом по рекламе.
  • Один клик по Create webhook — и CCV Shop сообщает о каждом заказе в момент, когда он помечен как оплаченный, причём каждая отправка должна содержать приватный токен вашего магазина.
  • Заказы CCV Shop не содержат IP-адреса покупателя, поэтому сниппет на странице успешного заказа в CCV Shop важнее, чем на большинстве платформ.
  • Проверка раз в 5 минут смотрит только недавно созданные заказы, поэтому заказы, оплаченные через несколько дней, зависят от вебхука: держите его активным.
  • Meta отклоняет серверные события спустя более чем 7 дней после создания заказа, поэтому очень поздний банковский перевод до Meta не доходит.

Трекинг конверсий в CCV Shop означает передачу каждого оплаченного заказа в вашем интернет-магазине CCV Shop на рекламные платформы, такие как Meta и TikTok, чтобы они засчитывали нужные объявления и оптимизировались по реальным продажам. Самый полный способ — отправлять каждую покупку из данных заказа CCV на сервере и добавить на страницу успешного заказа короткий сниппет, который связывает заказ с кликом по рекламе.

CCV Shop — это облачная платформа интернет-магазинов нидерландской компании CCV, которая сообщает о 17,000 работающих магазинов. В этом руководстве объясняется, как ROASaurus подключается к ней, как заказы связываются с кликами по рекламе, что доходит до Meta и TikTok, как выполнить настройку и тестирование и как работают поздние платежи. Общую идею смотрите в материале что такое серверный трекинг.

Как ROASaurus подключается к CCV Shop?

ROASaurus использует три части CCV Shop, все они описаны в документации API CCV:

Часть CCV ShopДля чего ее использует ROASaurus
REST API с публичным и секретным ключомЧитает каждый оплаченный заказ и его строки
Вебхук для события orders.updated.ispaidCCV сообщает о заказе в момент изменения его статуса оплаты
Страница успешного заказа с Vertoshop.jsСниппет читает там id заказа и связывает заказ с посетителем
API и вебхук доставляют заказ. Сниппет на странице успеха связывает его с кликом по рекламе.
Заказ помечен как оплаченныйВ CCV Shop, после оплаты
ВебхукCCV отправляет id заказа, подписанный x-hash
ROASaurusЧитает заказ и его строки подписанными вызовами API
Рекламные платформыPurchase с event id order-58213
Путь данных для каждого оплаченного заказа. ROASaurus проверяет, что заказ оплачен, прежде чем что-либо отправить.

Почему браузерные пиксели не видят покупки в CCV Shop?

Браузерный пиксель сообщает о покупке, только когда браузер покупателя загружает страницу успешного заказа и запускается скрипт пикселя. Это ломается в нескольких распространённых ситуациях:

  • Покупатель платит через редирект, например с помощью iDEAL, и закрывает вкладку до загрузки страницы успеха.
  • Блокировщик рекламы или настройка приватности в браузере блокирует скрипт пикселя.
  • Посетитель отклоняет маркетинговые cookie, поэтому пиксель не должен загружаться.
  • Заказ оплачивается позже, банковским переводом или при доставке, когда браузер не участвует.

Во всех этих случаях CCV Shop всё равно помечает заказ как оплаченный. ROASaurus отправляет этот заказ с сервера, поэтому покупка передаётся независимо от того, что произошло в браузере. У сниппета на странице успеха другая задача: он сообщает ROASaurus, какому посетителю, а значит и какому клику по рекламе, принадлежит заказ.

Вебхук оплаты заказа и проверка раз в 5 минут

Что делает Create webhook

Когда вы нажимаете Create webhook, ROASaurus регистрирует вебхук CCV для события orders.updated.ispaid, которое CCV запускает при изменении свойства оплаты заказа. Адрес — это URL вебхука вашего магазина в ROASaurus, содержащий ключ магазина и приватный токен. CCV ничего не добавляет в вебхук, что идентифицировало бы магазин, а его документация советует включать идентификатор в адрес. Ключ магазина это и делает.

CCV выдаёт каждому вебхуку собственный секретный ключ из 32 символов. Когда CCV возвращает этот ключ, ROASaurus сохраняет его, и с этого момента каждая отправка должна содержать корректный заголовок x-hash. Каждая отправка также должна содержать токен вашего магазина. Получив отправку, ROASaurus игнорирует неоплаченные заказы, читает из API полный заказ и его строки и отправляет заказ, только когда CCV сообщает, что он оплачен.

Подписанные вызовы API

CCV требует подписывать каждый вызов API. ROASaurus отправляет три заголовка: x-public с вашим публичным ключом, x-date с текущим временем и x-hash. CCV отклоняет метку времени, которая отличается от времени его сервера более чем на 5 минут. Сам ваш секретный ключ никогда не отправляется.

Как CCV Shop подписывает запросы
API call (ROASaurus → CCV)
x-hash = HMAC-SHA512( public_key|METHOD|uri|body|timestamp , secret_key )

Webhook (CCV → ROASaurus)
x-hash = HMAC-SHA512( address|payload , webhook_key )

Проверка раз в 5 минут

Каждые 5 минут ROASaurus также запрашивает у CCV оплаченные заказы, созданные с момента его последней проверки, с перекрытием в 30 минут, и записывает те, которых у него ещё нет. CCV фильтрует заказы только по дате создания. Поэтому проверка находит заказы, оплаченные вскоре после оформления, а заказ, оплаченный через несколько дней, попадает в ROASaurus только через вебхук.

CCV считает успехом ответ 200, 201, 202 или 204. После ответа 307, 408, 503 или 504 он держит отправку открытой и повторяет её при следующем событии, а любой другой ответ помечает как неудачный. Он ждёт соединения 2 секунды и ответа 5 секунд.

Как заказ CCV Shop связывается с кликом по рекламе?

Чтобы засчитать объявление, платформе нужны идентификаторы клика посетителя, который сделал заказ, например click id Meta (fbc) и click id TikTok (ttclid). Скрипт ROASaurus сохраняет их для каждого посетителя, когда он приходит с рекламы. Этот visitor id ROASaurus не получает из заказа CCV, поэтому связывает заказы с посетителями другими способами:

МетодВ CCV ShopКак это работает
1. Сниппет на странице успешного заказаДаЧитает id заказа через Vertoshop.getOrder().getId(), а также сумму заказа и валюту и запускает покупку ROASaurus с event id order-58213
2. Более ранний emailДаХешированный email, который посетитель ранее указал на вашем сайте, в форме во всплывающем окне или через вызов Identify
3. IP-адрес и браузерНетЗаказы CCV Shop не содержат IP-адреса или браузера покупателя, поэтому этому запасному способу не с чем сравнивать
На большинстве других платформ IP-вариант находит часть заказов, которые пропустил сниппет. В CCV Shop он этого сделать не может, поэтому добавьте сниппет.

ROASaurus недолго ждёт перед отправкой каждой покупки, чтобы событие со страницы успеха могло прийти первым, и повторяет сопоставление в момент отправки. Страница Orders показывает результат по каждому заказу в столбце Matched by: thank_you, email или not matched.

Несопоставленный заказ всё равно уходит на ваши рекламные платформы с хешированными данными клиента из заказа. У него нет click id, а поскольку заказы CCV не содержат IP-адреса или браузера, нет и их. Это снижает долю событий, которые Meta может сопоставить с человеком; как Meta оценивает это, объясняет материал Event Match Quality. В атрибуции ROASaurus такой заказ отображается как прямой или неизвестный.

Что доходит до Meta и TikTok из заказа CCV?

Данные заказа CCVОтправляется как
idEvent id order-58213 и id заказа
total_price, currencyСумма и валюта (EUR, когда CCV не указывает валюту)
create_dateВремя события
Email клиента, мобильный или обычный телефон, имя и фамилияХешируется с помощью SHA-256
Город, почтовый индекс и код страны для выставления счётаХешируется с помощью SHA-256
ID клиентаХешированный внешний ID
Строки заказа: номер товара, id товара, количество, цена и названиеТовары с id, количеством и ценой
IP-адрес и браузерНет в заказах CCV: берутся из события страницы успеха или из сопоставленного посетителя
Что ROASaurus читает из каждого заказа CCV Shop и как это выглядит в серверном событии.

Meta получает Purchase через свой Conversions API, а TikTok — CompletePayment через свой Events API, оба с event id order-58213. TikTok теперь показывает CompletePayment в своих отчётах как Purchase. Если вы отметите опцию загрузки также браузерного пикселя, сниппет на странице успеха запускает те же события в браузере с тем же event id, а Meta и TikTok оставляют одну копию. Те же заказы уходят в Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn и другие рекламные платформы, если вы их подключили. Конверсии покупок Google Ads отправляются только из чекаута Shopify, поэтому ROASaurus не отправляет их из CCV Shop.

Как настроить трекинг конверсий в CCV Shop

  1. Добавьте магазин в ROASaurus

    Перейдите в Add a store, выберите CCV Shop и введите адрес вашего магазина. Затем на вкладке Connection появятся ваш тег скрипта и сниппет для страницы успеха.

  2. Найдите свои ключи API

    В CCV Shop откройте My webshop › Settings › General › API settings и нажмите New API key. Если этого раздела нет, сначала установите приложение API из CCV App Store.

  3. Добавьте скрипт на каждую страницу

    Вставьте тег скрипта в Header HTML вашего магазина. В справочном центре CCV он находится в Mijn webshop › Instellingen › Lay-out › Layout, внизу страницы. Блок кода приложения в заголовке тоже подойдёт.

  4. Добавьте сниппет на страницу успеха

    Перейдите в Mijn webshop › Instellingen › Algemeen › Teksten, откройте текст, который показывается после оформления заказа, переключитесь на Source и вставьте туда сниппет. Тогда CCV Shop будет запускать его на странице успешного заказа.

  5. Подключите API

    На вкладке Connection введите публичный и секретный ключ. Заполняйте Shop URL, только если ваш API работает на другом домене, чем магазин. Сохраните, нажмите Test connection, затем Create webhook.

  6. Подключите рекламные платформы

    В разделе Tracking & platforms используйте Connect with Facebook или Add pixel для Meta и Add pixel для TikTok. Отметьте опцию загрузки также браузерного пикселя.

Согласие

Вне Shopify скрипт ROASaurus считывает выбор посетителя из распространённых инструментов согласия: Cookiebot, OneTrust, баннеров IAB TCF и Google consent mode. При использовании другого cookie-баннера вызовите tlq('consent', true), когда посетитель принимает маркетинговые cookie, и tlq('consent', false), когда он отказывается. Пока посетитель не принял, у него нет visitor id и click id, а браузерные пиксели не срабатывают. Оплаченный заказ по-прежнему отправляется с сервера с хешированными данными клиента из заказа. Подробности объясняет справочная страница о согласии.

Как протестировать трекинг конверсий в CCV Shop?

  • Откройте свой магазин с ?roasaurus=connected в адресе. Предупреждение подтвердит, что скрипт работает. ?roasaurus=debug выводит в консоль браузера то, что он отправляет.
  • В Event log, в разделе Collected events, просмотры страниц должны показывать visitor id.
  • Оформите заказ и оплатите его или отметьте как оплаченный. В Event log в разделе Collected events должно появиться событие Purchase с id заказа CCV в данных. Если его нет, сниппет на странице успеха не сработал.
  • На вкладке Connection поле Last order received показывает заказ, а Last sync — последнюю 5-минутную проверку, вместе с ошибкой от CCV, если она была.
  • В разделе Server deliveries в Event log для каждой подключённой платформы появляется строка со статусом sent и ответом платформы.
PageView visitor 51c0e9a7Скрипт на каждой странице
Purchase order-58213Сниппет страницы успешного заказа
webhook orders.updated.ispaidПодпись проверена, заказ оплачен
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentТот же event id, дедупликация
Пример здорового тестового заказа. Кнопка Fetch orders now на вкладке Connection сразу запускает 5-минутную проверку.

Чтобы увидеть событие в Meta, вставьте код из Events Manager › Test events в поле Test event code вашего пикселя Meta в ROASaurus и удалите его, когда закончите.

Поздние платежи и другие ограничения

Банковские переводы и наложенный платёж оплачиваются после оформления заказа. Вот что происходит с примером заказа с банковским переводом, начиная со дня оформления:

КогдаЧто происходитРезультат
День 0, при оформленииЗаказ создан, но не оплаченНе отправлено: 5-минутная проверка запрашивает только оплаченные заказы
День 0, примерно через 35 минутВремя создания заказа выходит за окно проверкиТеперь сообщить о нём может только вебхук
День 3Вы помечаете заказ как оплаченныйПриходит вебхук, ROASaurus отправляет заказ. Времени события (день 0) уже 3 дня: Meta принимает его
Вместо этого день 9Вы помечаете заказ как оплаченныйПриходит вебхук, ROASaurus отправляет заказ. 9 дней — это больше 7: Meta отклоняет его
Условная хронология. Время события — это дата создания заказа, а Meta принимает серверные события в течение 7 дней после времени события.
  • Наложенный платёж. ROASaurus отправляет такие заказы, когда CCV помечает их оплаченными, обычно после доставки. О том, когда считать такие заказы, см. трекинг наложенного платежа.
  • Браузерные покупки до оплаты. Сниппет на странице успеха запускается при оформлении заказа, поэтому браузерные пиксели сообщают о заказе с банковским переводом до его оплаты. Если оплата приходит более чем через 48 часов, Meta и TikTok не могут объединить браузерную и серверную копии.
  • Нет запасного варианта по IP. Добавьте сниппет на страницу успеха и, где можете, собирайте email раньше на своём сайте.
  • Отмены и возвраты не отправляются. Как только покупка отправлена, она остаётся в рекламной платформе.
  • Только просмотры страниц, без кода. Просмотры товаров и добавления в корзину определяются автоматически только в Shopify. В CCV Shop разработчик может отправлять их вызовом tlq track.

На странице интеграции с CCV Shop в одном месте собраны сведения о подключении, а на странице справки о других интернет-магазинах CCV Shop сравнивается с другими платформами, к которым подключается ROASaurus, например Lightspeed.

Источники

  1. CCV Shop: API Documentatie
  2. CCV: Webshop API
  3. Meta for Developers: Server Event Parameters
  4. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  5. TikTok Ads Manager: About Event Deduplication

В ROASaurus

Читайте дальше

Рекламные платформы и интернет-магазиныТрекинг конверсий при наложенном платеже и внешних чекаутахТрекинг конверсий при наложенном платеже: почему пиксели не видят заказы с оплатой при получении и из внешних чекаутов, когда отправлять покупку и как обрабатывать отказы от заказа.Рекламные платформы и интернет-магазиныGoogle Ads enhanced conversions в ShopifyEnhanced conversions добавляют хешированные данные клиента к покупкам в Google Ads в Shopify. Как они работают, чем отличаются от офлайн-импорта и как их настроить.Рекламные платформы и интернет-магазиныТрекинг конверсий Lightspeed для eCom-магазиновТрекинг конверсий Lightspeed для eCom (C-Series): отправляйте оплаченные заказы в Meta и TikTok с сервера, связывайте их с кликами по рекламе, настраивайте и тестируйте.
FAQ

Ответы на вопросы

Где найти API keys CCV Shop?

В My webshop › Settings › General › API settings. Если этой страницы нет, сначала установите приложение API из CCV App Store.

Что делает сниппет страницы успешного заказа?

Он читает id заказа через Vertoshop.getOrder().getId(), а также сумму заказа и валюту и запускает покупку ROASaurus с этим id. ROASaurus использует его, чтобы связать заказ с посетителем и его кликом по рекламе.

Почему ROASaurus не может сопоставлять заказы CCV по IP-адресу?

Заказы CCV Shop не содержат IP-адреса или браузера покупателя. Без сниппета или email, который посетитель ранее указал на сайте, заказ остаётся несопоставленным.

Отправляются ли заказы, оплаченные через несколько дней?

Да, через вебхук оплаты заказа. 5-минутная проверка смотрит только недавно созданные заказы, поэтому держите вебхук активным. Meta отклоняет события спустя более чем 7 дней после создания заказа.

Как ROASaurus использует мой секретный ключ CCV Shop?

ROASaurus хранит секретный ключ в зашифрованном виде и использует его только для подписи каждого вызова API с помощью HMAC-SHA512, как требует CCV. Сам ключ в CCV никогда не отправляется, только подпись.

Каждая продажа прослежена до рекламы, которая её принесла

Серверный трекинг, прибыль и пожизненная ценность клиента в одном приложении. 14 дней бесплатно, без банковской карты.

Начать бесплатный пробный период →