How to use yandex.metrica ecommerce layer with react&

483 Views Asked by At

I added a yandex.metrica script (w ecommerce layer) in my index.html

 <!-- Yandex.Metrika counter -->
        <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(id, "init", {
              clickmap:true,
              trackLinks:true,
              accurateTrackBounce:true,
              webvisor:true,
              ecommerce: "dataLayer"
          });
        </script>
        <!-- /Yandex.Metrika counter -->

I need to send some data-objects to ecommerce layer like this dataLayer.push({ ecommerce: "someData" }), but i dont understand how to do it correctly inside a react component...

1

There are 1 best solutions below

0
On

it should work just like other events for YM

window.ym(yaCounterId, "reachGoal", eventName)


window.dataLayer.push({
    ecommerce: {
        currencyCode: 'RUB',
        add: {
            products: [
                {
                    id: '43521',
                    name: 'Yandex bag',
                    price: 654.32,
                    brand: 'Yandex / Яndex',
                    category: 'Accessories/Bags',
                    quantity: 1,
                },
            ],
        },
    },
});

just create wrapper function to make it look better