Yandex.Metrica Integration: Goals, E-commerce, Webvisor

Yandex.Metrica Integration: Goals, E-commerce, Webvisor

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1026
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

Yandex.Metrica Integration: Goals, E-commerce, Webvisor

Incorrect integration of Yandex.Metrica means lost analytics control. Goals don't fire, e-commerce data isn't transmitted, and Webvisor records empty sessions. The root cause is often overlooked architecture: classic HTML sites require one approach, SPAs on React/Vue/Nuxt another, and server-side rendering (SSR) adds its own complexities. We have audited over 50 projects and identified typical errors: incorrect counter initialization, missing hit calls in SPAs, and dataLayer structure mismatches. According to our data, up to 30% of configured goals don't work due to these issues. Proper integration via dataLayer pushes order transmission accuracy to 95%—versus 50% with basic goal-less setup. We fix these issues at installation, saving you up to 25% of your ad budget through precise conversion data. Our certified team guarantees error-free setup with over 5 years of proven experience.

Comparison of integration approaches by architecture

Architecture Setup specifics Risks
Classic HTML Simple counter placement, URL goals No dynamic events, low e-commerce accuracy (only 50%)
SPA (React/Vue) Requires ym('hit'), JavaScript goals Missed virtual pageviews, broken Webvisor
SSR (Next/Nuxt) Client-side counter init, hydration Conflicts with server rendering, duplicate data

JavaScript goals in SPAs are 2.5 times more accurate than URL goals because they catch any action, not just URL changes. This proven method improves conversion tracking reliability by up to 40% compared to basic setup.

Counter installation with correct parameters

The basic counter code:

<script type="text/javascript"> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for(var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(COUNTER_ID, "init", { clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, ecommerce: "dataLayer" }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/COUNTER_ID" style="position:absolute;left:-9999px" alt=""/></div></noscript> 

The webvisor: true parameter is mandatory for session recording. For SPAs, add ym(COUNTER_ID, 'hit', url) on every route change.

Why Webvisor doesn't record in SPAs?

In SPAs, Webvisor may fail due to missing page reloads. The fix is to explicitly call ym('hit') after each URL change. Example for Vue Router:

router.afterEach((to) => { ym(COUNTER_ID, 'hit', to.fullPath); }); 

For React Router, use useEffect with route subscription. Check the Metric Debugger to ensure each virtual pageview is captured.

E-commerce data transmission via dataLayer

For online stores, transmitting order data via dataLayer is critical:

window.dataLayer = window.dataLayer || []; window.dataLayer.push({ ecommerce: { purchase: { actionField: { id: orderId, revenue: total, coupon: couponCode }, products: orderItems.map(item => ({ id: item.productId, name: item.name, price: item.price, quantity: item.qty, brand: item.brand, category: item.category })) } } }); 

"The ecommerce object structure must strictly conform to Yandex.Metrica's specification" (official documentation). Ensure the structure is exact—otherwise data won't appear in reports. If errors occur, check the browser console for messages from Metrica.

5 steps for e-commerce setup in Yandex.Metrica

  1. Add the window.dataLayer array to the page.
  2. Configure the counter with ecommerce: "dataLayer" parameter.
  3. On purchase, send the ecommerce.purchase event.
  4. Verify data in the Metric Debugger.
  5. Ensure no duplicate push calls.

Common e-commerce errors and solutions

Error Cause Solution
Data not displayed Wrong counter ID or call order Check initialization, push after page load
Incorrect order total actionField mismatch Compare with Yandex.Metrica spec
Duplicate purchases Multiple push calls Add a flag to block resubmission
Missing products Empty or non-array products Verify products is an array of objects

Verify e-commerce data correctness

Use the "Debugger" tool in Yandex.Metrica. It shows incoming events and structural errors. Compare the number of sent purchases with actual orders—if the discrepancy exceeds 5%, data is being lost.

Protecting sensitive data in Webvisor

Webvisor records all actions, including passwords and card numbers. Add the class ym-disable-keys or attribute data-ym-disable-keys to input fields:

<input type="password" class="ym-disable-keys" /> <input type="text" name="card_number" data-ym-disable-keys /> 

Also configure filters in the Metrica interface to exclude pages with personal data.

What's included in turnkey setup

  • Counter installation with correct parameters
  • Configuration of all goal types (URL, JS, CSS selector)
  • E-commerce integration via dataLayer
  • Webvisor connection and data filtering
  • Testing in the Metric Debugger
  • Documentation describing all events

Basic setup time: 1–2 business days. For SPAs or complex e-commerce: up to 5 days. Contact us for an audit of your current setup—we'll evaluate correctness and suggest improvements. Order a turnkey Metrica configuration to get precise conversion data.