Событие отслеживается несколько раз в JS - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть код JS, где я отслеживаю покупку покупателя. Если кто-то нажимает на кнопку окончательной отправки в корзине, событие «покупка» отслеживается. Затем клиент продолжает Trustpay. Если покупатель возвращается в корзину и снова нажимает кнопку «Отправить», это событие вызывается снова.

  1. Я хочу получить только одно событие покупки за покупку.
  2. Я хочу быть уверен, что клиент Не будет события без покупки чего-либо.

Кроме того, у меня ограниченный доступ к коду сайта. У меня есть доступ только через менеджер тегов и контроль отслеживания из скриптов ...

first:

function billingInformationListener() {
  if (dataLayer[0].ecommerce.checkout.actionField.step === 2) {
    let accept = $('#place_order');
    $(accept).unbind();
    if (accept) {
      $(accept).one("click", function () {
      //$(accept).click(function () {
        if (document.querySelector('#terms').checked) {
          trackBillingInf();
          trackPurchase();
        }
      });
    }
  }
}

В trackpurchase () есть только атрибуты из dataLayer, поэтому все данные о текущей покупке.

1 Ответ

0 голосов
/ 13 апреля 2020

Вы можете, если вы хотите сделать это без серверной части, вам нужно. Когда пользователь нажимает на кнопку отправки, вы должны принять ответ, если ответ успешный, вы должны написать некоторую переменную wasSubmitted = true, и перед вызовом trackBillingInf вы необходимо проверить if(!wasSubmitted) Лучше сохранить переменную в локальном хранилище, потому что пользователь может отправить форму из другой вкладки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...