- Проследяването на конверсии в CCV Shop е най-пълно, когато всяка платена поръчка се изпраща от данните за поръчките на CCV на сървъра, а фрагмент на страницата за успешна поръчка свързва поръчката с кликването върху реклама.
- Едно кликване върху Create webhook кара CCV Shop да съобщава за всяка поръчка в момента, в който е маркирана като платена, а всяко изпращане трябва да носи частния токен на вашия магазин.
- Поръчките от CCV Shop не включват IP адреса на купувача, затова фрагментът на страницата за успешна поръчка е по-важен в CCV Shop, отколкото в повечето платформи.
- 5-минутната проверка гледа само наскоро създадени поръчки, затова поръчките, платени дни по-късно, зависят от webhook-а: дръжте го активен.
- 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, с публичен и таен ключ | Чете всяка платена поръчка и редовете ѝ |
Webhook за събитието orders.updated.ispaid | CCV съобщава за поръчка в момента, в който статусът ѝ на плащане се промени |
Страницата за успешна поръчка, с Vertoshop.js | Фрагментът чете там ID на поръчката и свързва поръчката с посетителя |
Защо пикселите в браузъра пропускат покупки от CCV Shop?
Пикселът в браузъра отчита покупка само когато браузърът на купувача зареди страницата за успешна поръчка и скриптът на пиксела се изпълни. Няколко често срещани ситуации нарушават това:
- Купувачът плаща чрез пренасочване, например с iDEAL, и затваря раздела, преди да се зареди страницата за успешна поръчка.
- Блокер на реклами или настройка за поверителност в браузъра блокира скрипта на пиксела.
- Посетителят отказва маркетинговите бисквитки, така че пикселът не трябва да се зарежда.
- Поръчката се плаща по-късно, с банков превод или при доставка, когато няма участие на браузър.
Във всеки от тези случаи CCV Shop все пак маркира поръчката като платена. ROASaurus изпраща тази поръчка от сървъра, така че покупката се отчита независимо от това какво се е случило в браузъра. Фрагментът на страницата за успешна поръчка има друга задача: той казва на ROASaurus към кой посетител, а оттам към кое кликване върху реклама, принадлежи поръчката.
Webhook-ът за платена поръчка и 5-минутната проверка
Какво прави Create webhook
Когато натиснете Create webhook, ROASaurus регистрира webhook в CCV за събитието orders.updated.ispaid, което CCV задейства, когато свойството „платена“ на поръчката се промени. Адресът е webhook URL адресът на вашия магазин в ROASaurus, който съдържа ключа на магазина и частен токен. CCV не добавя към webhook нищо, което идентифицира магазина, а документацията му съветва да се постави идентификатор в адреса. Ключът на магазина го прави.
CCV дава на всеки webhook собствен таен ключ от 32 знака. Когато CCV върне този ключ, ROASaurus го запазва и оттук нататък всяко изпращане трябва да носи валидна заглавка x-hash. Всяко изпращане трябва да носи и токена на вашия магазин. Когато ROASaurus получи изпращане, игнорира неплатените поръчки, чете цялата поръчка и редовете ѝ от API и изпраща поръчката само когато CCV казва, че е платена.
Подписани API заявки
CCV изисква всяка API заявка да бъде подписана. ROASaurus изпраща три заглавки: x-public с вашия публичен ключ, x-date с текущото време и x-hash. CCV отхвърля времеви печат, който се различава с повече от 5 минути от времето на сървъра му. Самият ви таен ключ никога не се изпраща.
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 само през webhook-а.
CCV приема отговор 200, 201, 202 или 204 за успех. След отговор 307, 408, 503 или 504 то държи изпращането отворено и го опитва отново при следващото събитие, а всеки друг отговор маркира като неуспешен. Изчаква 2 секунди за връзка и 5 секунди за отговора.
Как поръчка от CCV Shop се свързва с кликването върху реклама?
За да припише заслугата на реклама, платформата се нуждае от идентификаторите на кликването на посетителя, който е поръчал, като click ID на Meta (fbc) и click ID на TikTok (ttclid). Скриптът на ROASaurus ги запазва за всеки посетител, когато той пристигне от реклама. ROASaurus не получава това ID на посетителя от поръчката в CCV, затова свързва поръчките с посетителите по други начини:
| Метод | В CCV Shop | Как работи |
|---|---|---|
| 1. Фрагмент на страницата за успешна поръчка | Да | Чете ID на поръчката с Vertoshop.getOrder().getId(), заедно с общата сума на поръчката и валутата, и задейства покупка в ROASaurus с ID на събитието order-58213 |
| 2. По-ранен имейл | Да | Хеширан имейл, който посетителят е въвел по-рано във вашия сайт, в изскачаща форма или чрез извикване на Identify |
| 3. IP адрес и браузър | Не | Поръчките от CCV Shop не включват IP адреса или браузъра на купувача, така че този резервен метод няма какво да сравнява |
ROASaurus изчаква за кратко, преди да изпрати всяка покупка, така че събитието от страницата за успешна поръчка да може да пристигне първо, и опитва съпоставянето отново в момента на изпращане. Страницата Orders показва резултата за всяка поръчка в колоната Matched by: thank_you, email или not matched.
Несъпоставена поръчка пак отива към рекламните ви платформи с хеширани данни за клиента от поръчката. Тя няма идентификатори на кликване и, тъй като поръчките от CCV не носят IP адрес или браузър, няма и тях. Това намалява дела на събитията, които Meta може да съпостави с човек; Event Match Quality обяснява как Meta оценява това. В атрибуцията на ROASaurus несъпоставената поръчка се показва като директна или неизвестна.
Какво стига до Meta и TikTok от поръчка в CCV?
| Данни за поръчката в CCV | Изпраща се като |
|---|---|
id | ID на събитието order-58213 и ID на поръчката |
total_price, currency | Стойност и валута (EUR, когато CCV не дава валута) |
create_date | Времето на събитието |
| Имейл на клиента, мобилен или телефонен номер, собствено и фамилно име | Хеширани със SHA-256 |
| Град за фактуриране, пощенски код и код на държавата | Хеширани със SHA-256 |
| ID на клиента | Хеширано външно ID |
| Редове на поръчката: номер на продукта, ID на продукта, брой, цена и име | Продукти с ID, количество и цена |
| IP адрес и браузър | Липсват в поръчките от CCV: вземат се от събитието на страницата за успешна поръчка или от съпоставения посетител |
Meta получава Purchase през своя Conversions API, а TikTok получава CompletePayment през своя Events API, и двете с ID на събитието order-58213. TikTok вече показва CompletePayment като Purchase в отчетите си. Когато отметнете опцията да се зарежда и пикселът в браузъра, фрагментът на страницата за успешна поръчка задейства същите събития в браузъра със същото ID на събитието, а Meta и TikTok запазват по едно копие. Същите поръчки отиват към Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn и другите рекламни платформи, когато ги свържете. Конверсиите за покупки в Google Ads се изпращат само от страницата за плащане на Shopify, затова ROASaurus не ги изпраща от CCV Shop.
Как да настроите проследяването на конверсии в CCV Shop
- Добавете магазина в ROASaurus
Отидете на Add a store, изберете CCV Shop и въведете адреса на магазина си. Разделът Connection показва след това вашия таг на скрипта и фрагмента за страницата за успешна поръчка.
- Намерете своите API ключове
В CCV Shop отидете на My webshop › Settings › General › API settings и натиснете New API key. Ако не го виждате, първо инсталирайте API приложението от CCV App Store.
- Добавете скрипта към всяка страница
Поставете тага на скрипта в Header HTML на магазина си. Помощният център на CCV го показва под Mijn webshop › Instellingen › Lay-out › Layout, в долната част на страницата. Работи и блок с код на приложение в заглавната част.
- Добавете фрагмента към страницата за успешна поръчка
Отидете на Mijn webshop › Instellingen › Algemeen › Teksten, отворете текста, който се показва след направена поръчка, превключете на Source и поставете фрагмента там. След това CCV Shop го изпълнява на страницата за успешна поръчка.
- Свържете API
В раздела Connection въведете публичния и тайния ключ. Попълнете Shop URL само когато вашият API работи в друг домейн, а не в този на магазина ви. Запазете, натиснете Test connection и след това Create webhook.
- Свържете рекламните си платформи
В Tracking & platforms използвайте Connect with Facebook или Add pixel за Meta и Add pixel за TikTok. Отметнете опцията да се зарежда и пикселът в браузъра.
Съгласие
Извън Shopify скриптът на ROASaurus чете избора на посетителя от разпространени инструменти за съгласие: Cookiebot, OneTrust, банери на IAB TCF и Google consent mode. При друг банер за бисквитки извикайте tlq('consent', true), когато посетителят приеме маркетинговите бисквитки, и tlq('consent', false), когато ги откаже. Докато посетителят не приеме, той няма ID на посетител или click ID и не се задействат пиксели в браузъра. Платената поръчка все пак се изпраща от сървъра с хеширани данни за клиента от поръчката. Помощната страница за съгласието обяснява подробностите.
Как да тествате проследяването на конверсии в CCV Shop?
- Отворете магазина си с
?roasaurus=connectedв адреса. Известие потвърждава, че скриптът работи.?roasaurus=debugзаписва в конзолата на браузъра какво изпраща. - В Event log, под Collected events, прегледите на страници трябва да показват ID на посетител.
- Направете поръчка и я платете или я маркирайте като платена. Под Collected events в Event log трябва да се показва 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_youTikTok CompletePayment sentЕдно и също ID на събитието, дедупликацияЗа да видите събитието в Meta, поставете кода от Events Manager › Test events в полето Test event code на вашия пиксел за Meta в ROASaurus и го премахнете, когато приключите.
Късни плащания и други ограничения
Банковите преводи и плащането при доставка се извършват, след като поръчката е направена. Ето какво се случва с примерна поръчка с банков превод от деня, в който е направена:
| Кога | Какво се случва | Резултат |
|---|---|---|
| Ден 0, на страницата за плащане | Поръчката е създадена, не е платена | Не е изпратено: 5-минутната проверка пита само за платени поръчки |
| Ден 0, около 35 минути по-късно | Времето на създаване на поръчката излиза от прозореца на проверката | Оттук нататък само webhook-ът може да я отчете |
| Ден 3 | Маркирате поръчката като платена | Webhook-ът пристига, ROASaurus я изпраща. Времето на събитието от Ден 0 е на 3 дни: Meta я приема |
| Ден 9, вместо това | Маркирате поръчката като платена | Webhook-ът пристига, ROASaurus я изпраща. 9 дни е повече от 7: Meta я отхвърля |
- Плащане при доставка. ROASaurus изпраща тези поръчки, когато CCV ги маркира като платени, обикновено след доставката. Вижте проследяването при плащане при доставка, за да разберете кога да отчитате такива поръчки.
- Покупки от браузъра преди плащането. Фрагментът на страницата за успешна поръчка се изпълнява, когато поръчката е направена, така че пикселите в браузъра отчитат поръчка с банков превод, преди тя да е платена. Ако плащането дойде повече от 48 часа по-късно, Meta и TikTok не могат да обединят копията от браузъра и от сървъра.
- Няма резервен метод с IP адрес. Добавете фрагмента на страницата за успешна поръчка и събирайте имейли по-рано във вашия сайт, където е възможно.
- Анулиранията и възстановяванията на суми не се изпращат. След като една покупка бъде изпратена, тя остава в рекламната платформа.
- Само прегледи на страници, без код. Прегледите на продукти и добавянията в количката се засичат автоматично само в Shopify. В CCV Shop разработчик може да ги изпраща с извикване
tlqза проследяване.
Страницата за интеграцията с CCV Shop събира фактите за връзката на едно място, а помощната страница за други онлайн магазини сравнява CCV Shop с другите платформи, с които ROASaurus се свързва, като Lightspeed.
Източници
- CCV Shop: API Documentatie
- CCV: Webshop API
- Meta for Developers: Server Event Parameters
- Meta for Developers: Handling Duplicate Pixel and Conversions API Events
- TikTok Ads Manager: About Event Deduplication
В ROASaurus
- Интеграция с CCV Shop
- Помощ: Wix, Lightspeed и други онлайн магазини
- Проследяване от страна на сървъра
- Интеграция с Meta