- Проследяването от страна на сървъра в WooCommerce изпраща всяка платена поръчка от собствените данни за поръчките на магазина към Meta, TikTok и други рекламни платформи, така че покупката се отчита дори когато пикселът в браузъра никога не се задейства.
- ROASaurus брои поръчка в WooCommerce за платена, когато статусът ѝ е processing или completed, което включва поръчките с плащане при доставка и банковите преводи, след като ги потвърдите.
- Плъгинът на ROASaurus записва ID на посетителя и бисквитките от кликването върху реклама към всяка поръчка при плащането, така че поръчката се свързва точно със своето кликване върху реклама.
- Без плъгина webhook-овете пак доставят всяка платена поръчка, но няма съпоставяне чрез страницата за благодарност: поръчките се свързват само по имейл, въведен по-рано в сайта, или по уникален IP адрес и браузър.
- В WooCommerce скриптът на ROASaurus следва плъгините за съгласие, които използват WP Consent API, като Complianz и CookieYes, както и банерите на Cookiebot, OneTrust и IAB TCF.
Проследяването от страна на сървъра в WooCommerce изпраща всяка платена поръчка от данните за поръчките на вашия магазин към Meta, TikTok и други рекламни платформи, вместо да разчита само на пиксел в браузъра на купувача. Покупката се отчита дори когато блокер на реклами спре пиксела или купувачът никога не стигне до страницата за благодарност.
Това ръководство обхваща защо магазините на WooCommerce губят конверсии, данните за поръчките, които WooCommerce ви дава, и двата начина за свързване на ROASaurus: плъгина за WordPress или webhook-ове. След това са съпоставянето, съгласието, настройката и тестването. За общата идея прочетете какво е проследяването от страна на сървъра.
Защо магазините на WooCommerce губят конверсии?
Пикселът в браузъра отчита покупка само когато скриптът на пиксела се зареди, купувачът стигне до страницата за благодарност и браузърът изпрати събитието. Всяка стъпка може да се провали. Самата поръчка все пак е във вашата база данни, защото WooCommerce я записва на сървъра.
| Какво се случва | Пиксел в браузъра | Данни за поръчките в WooCommerce |
|---|---|---|
| Купувачът плаща чрез пренасочване (например PayPal или банково приложение) и затваря раздела | Няма страница за благодарност, няма събитие за покупка | Платена поръчка, статус processing |
| Блокер на реклами или настройка за поверителност блокира скрипта на пиксела | Няма събитие за покупка | Платена поръчка |
| Посетителят отказва маркетинговите бисквитки | Пикселът не бива да се зарежда | Платена поръчка |
| Банков превод се потвърждава три дни по-късно | В този момент няма отворен браузър | Статусът се променя от on hold на processing |
| Плъгин за кеширане или оптимизиране на скриптове забавя пиксела | Събитието може да закъснее или да липсва | Платена поръчка |
Липсващите покупки вредят по два начина. Рекламната платформа оптимизира въз основа на по-малко конверсии, а отчетите ви показват по-ниска възвръщаемост от реалната. Ето втория ефект в числа, за примерен магазин с ROAS на точката на рентабилност 2.2:
| Примерен магазин, един месец | Само пиксел | Всяка платена поръчка |
|---|---|---|
| Разходи за реклама в Meta | $8,000 | $8,000 |
| Покупки от кликвания в Meta | 260 | 320 |
| Приходи при $60 на поръчка | $15,600 | $19,200 |
| ROAS | 15,600 ÷ 8,000 = 1.95 | 19,200 ÷ 8,000 = 2.40 |
| Спрямо точката на рентабилност (2.2) | Изглежда като загуба | Печеливша |
Какво ви дава WooCommerce: поръчки, webhook-ове и REST API
Кои статуси на поръчка се броят за платени?
WooCommerce описва processing като получено плащане, при което поръчката чака изпълнение. ROASaurus изпраща поръчки със статус processing или completed и пропуска поръчките със статус pending payment, on hold, failed, cancelled и refunded. Два начина на плащане изискват внимание:
- Плащане при доставка. WooCommerce задава на тези поръчки статус processing, докато плащането не бъде събрано, затова ROASaurus ги изпраща, когато бъдат направени. Изключение са поръчките със сваляем продукт: те получават статус on hold. Вижте проследяването на поръчки с плащане при доставка за това какво означава това при връщания и откази.
- Банков превод. WooCommerce поставя тези поръчки в статус on hold, докато потвърдите плащането. ROASaurus ги изпраща, когато ги преместите в processing.
Webhooks
Webhook е съобщение, което WooCommerce изпраща към друга система, когато нещо се промени. Създавате го в WooCommerce › Settings › Advanced › Webhooks. За тема на поръчка payload-ът е същият обект на поръчка, който връща REST API. Всяко изпращане носи заглавка X-WC-Webhook-Signature: base64 HMAC-SHA256 хеш на payload-а, направен с тайния ключ, който изберете. ROASaurus проверява този подпис, преди да приеме поръчка.
Две подробности са важни на практика. WooCommerce доставя webhook-овете на заден план, по подразбиране с WP-Cron, така че доставката може да се забави, когато тази опашка закъснява. А WooCommerce деактивира webhook-а след повече от пет неуспешни доставки поред.
REST API
REST API позволява на ROASaurus сам да поиска поръчките. С API ключ само за четене ROASaurus на всеки 5 минути пита за поръчки със статус processing и completed, променени след последната му проверка, с 30 минути припокриване. Поръчките, които вече има, се игнорират. Така се улавя всяка поръчка, която webhook-ът е пропуснал.
| Поле на поръчката | Какво прави ROASaurus с него |
|---|---|
id | Става ID на събитието order-1042, споделен от събитията от сървъра и от браузъра |
total | Стойността на покупката: общата сума, включително данъци и доставка |
| Имейл, телефон, име, град, област, пощенски код и държава от данните за фактуриране | Хешира се със SHA-256 и се изпраща като данни за клиента |
customer_ip_address, customer_user_agent | Изпращат се със събитието и се използват за съпоставяне на поръчката с посетител |
line_items | ID на продуктите (ID на вариацията, когато има такава), количества и цени |
date_paid_gmt | Времето на събитието за поръчки от webhook или REST API (датата на създаване, когато няма дата на плащане) |
meta_data | С плъгина: ID на посетителя и бисквитките на Meta и TikTok |
Плъгин или webhook-ове: два начина за свързване
И двете връзки изпращат всяка платена поръчка. Разликата е в това колко добре всяка поръчка е свързана с кликването върху реклама, което е довело купувача.
| Плъгин на ROASaurus | Само webhook-ове | |
|---|---|---|
| Какво инсталирате | Плъгин за WordPress (PHP 7.4 и WooCommerce 6.0 или по-нови) | Нищо: webhook в настройките на WooCommerce |
| Как пристигат поръчките | Плъгинът изпраща всяка платена поръчка към API за поръчки на ROASaurus | WooCommerce изпраща Order updated; незадължителна проверка през REST API на всеки 5 минути |
| Скрипт за проследяване | Зарежда се от плъгина на всяка страница | Добавяте го вие, например с плъгина WPCode или в темата си |
| ID на посетителя и бисквитки от кликването към поръчката | Да, записват се при плащането (класическа и блокова страница за плащане) | Не |
| Покупка от браузъра на страницата за благодарност | Да, със същия ID на събитието като събитието от сървъра | Не |
| Съпоставяне чрез страницата за благодарност | Да | Не |
Можете да ползвате и двете едновременно. Плъгинът записва ID на посетителя към поръчката като мета данни на поръчката, а payload-ът на webhook го пренася. ROASaurus съхранява всяка поръчка веднъж, по нейния ID на поръчка в WooCommerce, така че плъгинът и webhook-ът никога не създават две покупки. Плъгинът също декларира поддръжка за High-Performance Order Storage на WooCommerce.
Как една поръчка в WooCommerce се съпоставя с кликването върху рекламата?
Рекламната платформа може да припише покупка на реклама само когато може да свърже двете. ROASaurus прави това, като свързва поръчката с посетителя, който е кликнал върху рекламата, а този посетител носи click ID-тата (като fbclid и ttclid) и UTM параметрите от пристигането си. Опитва тези методи по ред и спира при първия, който проработи:
- ID на посетителя, записан към поръчката. Само с плъгина. Това е точна връзка.
- Покупката от браузъра на страницата за благодарност, която носи същия ID на поръчката. Само с плъгина.
- Хеширан имейл, който посетителят е дал по-рано във вашия сайт, например във форма в изскачащ прозорец на Klaviyo, Attentive или Wisepops, или чрез извикване на Identify.
- Същият IP адрес и браузър, видени от 3 часа преди до 15 минути след поръчката, но само когато подхожда точно един посетител. В споделени мрежи, като офиси и мобилни оператори, няколко посетители често споделят един IP адрес и тогава ROASaurus не гадае.
ROASaurus изчаква за кратко, преди да изпрати всяка покупка, така че събитието от страницата за благодарност да може да пристигне първо. Ако поръчката все още не е съпоставена, опитва отново при изпращането. Страницата Orders показва резултата за всяка поръчка в колоната Matched by. Поръчките, свързани чрез ID на посетителя от плъгина, показват cart — същия етикет, който получават и поръчките от Shopify.
| Изпратено към Meta за поръчка 1042 | Съпоставена (плъгин) | Не е съпоставена (само webhook-ове) |
|---|---|---|
ID на събитието order-1042 | Да | Да |
| Хеширани имейл, телефон, име и адрес | Да | Да |
| IP адрес и браузър на поръчката | Да | Да |
Click ID и ID на браузъра на Meta (fbc, fbp) | Да | Не |
Хеширан ID на посетителя (external_id) | Да | Не |
| Кликването върху рекламата в атрибуцията на ROASaurus | Кампания и реклама на кликването | Показва се като директна или неизвестна |
Тези идентификатори на кликването повишават степента на съпоставяне на събитието при Meta. Event Match Quality обяснява как Meta ги оценява.
Съгласие в WooCommerce
Всеки магазин в ROASaurus има настройката Respect visitor consent, която е включена по подразбиране. В WooCommerce скриптът на ROASaurus чете избора на посетителя от WP Consent API, който се попълва от плъгини за съгласие като Complianz и CookieYes. Чете също Cookiebot, OneTrust, банери на IAB TCF и Google consent mode. Докато посетителят не приеме маркетинговите бисквитки, скриптът не задава ID на посетител и не зарежда пиксели в браузъра.
Когато посетителят откаже, скриптът не задава ID на посетител, не пази click ID и не задейства пиксели в браузъра, а плъгинът не записва бисквитки за проследяване към поръчката. Платената поръчка все пак се изпраща от сървъра към свързаните ви рекламни платформи с хеширани данни за клиента от поръчката и с IP адреса и браузъра на поръчката. Ако вашият правен съвет гласи, че и събитията за покупка се нуждаят от предварително съгласие, свържете се с ROASaurus, преди да включите покупките от страна на сървъра. Помощната страница за съгласието съдържа подробностите, а статията за Consent Mode v2 и GDPR разглежда правния контекст.
Как да настроите проследяване от страна на сървъра в WooCommerce
Ето стъпките за варианта с плъгин:
- Добавете магазина
В ROASaurus отидете на Add a store, изберете WooCommerce и въведете домейна, който посещават клиентите ви.
- Създайте API ключ
Отворете Store settings и под Orders API кликнете върху Create API key. Копирайте ключа веднага: той се показва само веднъж, до ключа на вашия магазин. Endpoint-ът е адресът пред
/api/v1/ordersна тази страница. - Инсталирайте плъгина
Изтеглете плъгина и качете zip файла в WordPress от Plugins › Add New Plugin › Upload Plugin. След това го активирайте.
- Въведете ключовете
Под WooCommerce › ROASaurus въведете endpoint-а, ключа на магазина и API ключа и запазете.
- Свържете рекламните си платформи
В Tracking & platforms използвайте Connect with Facebook или Add pixel за Meta, TikTok и останалите. Отметнете опцията за зареждане и на пиксела в браузъра, така че покупката от страницата за благодарност да се дедупликира със събитието от сървъра.
- Настройте съгласието и тествайте
Блокирайте скрипта в инструмента си за съгласие, докато посетителят не приеме маркетинговите бисквитки, след това направете тестова поръчка.
Без плъгина добавете тага на скрипта от Tracking & platforms на всяка страница, след това създайте webhook. Разделът Connection на вашия магазин показва URL адреса на вашия webhook. Пазете го в тайна: всеки, който има URL адреса, може да изпраща поръчки към вашия магазин.
WooCommerce › Settings › Advanced › Webhooks › Add webhook Status Active Topic Order updated Delivery URL (your webhook URL from the Connection tab) Secret (a secret of your choice; paste the same one in ROASaurus) API version WP REST API Integration v3
За резервния вариант създайте ключ в WooCommerce › Settings › Advanced › REST API с достъп за четене. Поставете consumer key и secret в раздела Connection, запазете и натиснете Test connection. Fetch orders now изтегля незабавно последните платени поръчки. Страницата за интеграция с WooCommerce изброява всички опции на едно място.
Как да тествате проследяването от страна на сървъра в WooCommerce?
Първо тествайте страната на браузъра, след това направете поръчка и я проследете до рекламните платформи.
- Отворете магазина си с
?roasaurus=connectedв адреса. Известие потвърждава, че скриптът работи. С?roasaurus=debugскриптът записва в конзолата на браузъра какво изпраща. - В Event log, под Collected events, прегледите на страници трябва да показват ID на посетител.
- Направете тестова поръчка. Плащането при доставка е най-бързо, защото поръчката е със статус processing веднага.
- В раздела Connection Last order received показва часа на последната поръчка.
- В Event log, под Server deliveries, всяка свързана платформа получава ред със статус sent и отговора на платформата.
PageView visitor 3f9c2a1eСкриптът е зареден със съгласиеPurchase order-1042Страница за благодарност, пикселите в браузъра са се задействалиorder 1042 processingПолучено от плъгинаMeta Purchase sentЕдно и също ID на събитието, дедупликацияTikTok CompletePayment sentЕдно и също ID на събитието, дедупликацияЗа да видите събитието в Meta, поставете кода от Events Manager › Test events в полето Test event code на вашия пиксел на Meta в ROASaurus. Премахнете го, когато приключите, защото кодът е предназначен само за тестване. Ако плъгинът не може да достави поръчка, той добавя бележка към поръчката в WooCommerce, която започва с „ROASaurus: order not sent“, следвана от грешката.
Грешки, които да избягвате
- Използване на темата Order created. Поръчките, платени чрез пренасочване, се създават със статус pending payment. ROASaurus игнорира неплатените поръчки и когато плащането пристигне, не следва второ съобщение „created“. Използвайте Order updated.
- Тайният ключ не съвпада. ROASaurus отхвърля доставка, чийто подпис не съвпада с тайния ключ, който има. След повече от пет неуспеха поред WooCommerce деактивира webhook-а. Поправете тайния ключ, върнете webhook-а в статус Active и добавете REST API ключа, за да бъдат изтеглени поръчките от периода на прекъсването.
- Два инструмента изпращат един и същ пиксел. Ако друг плъгин също изпраща вашия пиксел на Meta или TikTok, той използва свои собствени ID-та на събития и платформата отчита всяка продажба два пъти. Изключете го за този пиксел. Вижте избягването на двойното отчитане и дублиращите се събития за покупка.
- Очакване на събития за добавяне в количката. В WooCommerce скриптът сам проследява прегледите на страници. Прегледите на продукти и добавянията в количката се засичат автоматично само в Shopify. Разработчик може да ги изпрати с извикване на проследяване
tlq. - Очакване на конверсии за Google Ads. ROASaurus изпраща конверсии за покупки в Google Ads само от страницата за плащане на Shopify. От WooCommerce изпраща покупки към Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn и другите рекламни платформи, които свържете.
- Късни банкови преводи. Meta приема събития от сървъра до 7 дни след времето на събитието. Плъгинът изпраща поръчката с датата, на която е създадена, затова Meta отхвърля превод, потвърден повече от 7 дни след завършването на поръчката. Поръчките, които пристигат чрез webhook или REST API, използват вместо това датата на плащане. Обърнете внимание и че страницата за благодарност задейства покупката от браузъра при завършване на поръчката, преди преводът да е платен. Ако плащането се потвърди повече от 48 часа по-късно, Meta и TikTok не могат да обединят копията от браузъра и от сървъра, а превод, който никога не бъде платен, запазва покупката си от браузъра.
Щом поръчките започнат да постъпват, отчетите за атрибуция показват от кои кампании и реклами идват.
Източници
- WooCommerce: Webhooks Documentation
- WooCommerce REST API Documentation - WP REST API v3
- WooCommerce: Order Statuses Documentation
- WooCommerce: Cash on Delivery Documentation
- Meta for Developers: Server Event Parameters
В ROASaurus
- Интеграция с WooCommerce
- Помощ: WooCommerce и персонализирани уебсайтове
- Проследяване от страна на сървъра