Быстрая замена _trackEvent() на ga(‘send’, ‘event’)

Текущей актуальной версией Google Analytics является Universal, в связи с чем необходимо выполнить замену кода отслеживания.

В связи с переходом Google Analytics на новую версию системы – Universal Analytics, перед всеми пользователями встает вопрос по замене текущего кода отслеживания на новую реализацию, пока это делается добровольно, но в последствии Universal Analytics станет стандартом. Как вы понимаете, имея большой объем шаблонов страниц сделать это вручную не только очень сложно, но и возможно допустить ошибку, которая впоследствии может повлиять на достоверность собираемых данных.

Сегодня я хочу предложить вам полуавтоматический вариант замены кода фиксации событий в Google Analytics. Не забудьте сделать резервные копии всех файлов, с которыми будете работать, а также не рекомендую вам вносить изменения в исходный код файлов, если вы ранее этого не делали. Учтите допущенная вами ошибка может повлиять на работоспособность сайта!

Какие инструменты нам понадобятся? Мне нравится работать в NetBeans IDE, но это достаточно сложный инструмент поэтому замену в нем я покажу после выполнения процедуры в Notepad++, который прост как в работе в нем, так и в установке. Выберите для себя инструмент, скачайте его и установите на свой компьютер.

Перед тем как мы приступим к замене давайте определимся что на что мы будем менять. Если внимательно посмотреть на код _trackEvent() и ga(‘send’, ‘event’), то можно заметить, что мы можем поменять только части строк, что нам позволит сэкономить время при переходе. Разберемся на примере.

Мы имеем совпадающие части, которые нет необходимости заменять:

Совпадения в исходном коде

Совпадения в исходном коде

А также различающиеся фрагменты, подлежащие замене:

Различия в исходном коде

Различия в исходном коде

Обратите внимание, что в приведенном мной примере не используются такие параметры как opt_noninteraction для _trackEvent() и value для ga(‘send’, ‘event’). Если вы используете их, то внимательно сравните свои строки.

Итак, мы должны заменить два фрагмента:

  • _gaq.push([‘_trackEvent’, на ga(‘send’, ‘event’,
  • ‘]); на ‘);

Вариант 1 – замена в Notepad++

Разместите файлы в которых необходимо произвести замену в отдельной папке на вашем компьютере. После этого запустите Notepad++, в главном меню выберите пункт Поиск, затем Найти в файлах:

Главное меню Notepad++

Главное меню Notepad++

Откроется окно, в котором необходимо указать строку поиска, строку на которую необходимо произвести замену и папку, в которой расположены файлы, в которых вы производите замену:

Окно замены в Notepad++

Окно замены в Notepad++

После этого нажмите на кнопку Заменить в файлах и в появившемся окне подтвердите свое действие нажав на кнопку Ок или запретите операцию выбрав Отмена:

Окно подтверждения замены

Окно подтверждения замены

По окончании процедуры вы будете проинформированы о количестве произведенных замен:

Завершение замены

Завершение замены

После этого необходимо повторить процедуру для замены ‘]); на ‘);

Замена второго фрагмента

Замена второго фрагмента

Теперь необходимо обновленные файлы разместить на сервере. Я рекомендую вам после процедуры замены кода отслеживания проверить по возможности все или хотя бы наиболее важные фиксации событий на сайте. Для этого можно использовать отчеты Google Analytics группы В реальном времени.

Вариант 2 – замена в NetBeans IDE

Вы можете разместить файлы, в которые будут внесены изменения в отдельной папке, после этого создать проект, установить его в качестве главного проекта и далее все операции выполнять в главном проекте.

Для создания проекта выберите соответствующий пункт в главном меню:

Создание проекта в NetBeanse

Создание проекта в NetBeanse

После этого указать категорию PHP и проекты Приложение PHP с существующими исходными кодами, после чего нажать кнопку Далее:

Тип проекта в NetBeanse

Тип проекта в NetBeanse

На следующем шаге укажите папку с файлами подлежащими редактированию и нажмите кнопку Готово:

Настройка проекта в NetBeanse

Настройка проекта в NetBeanse

Третий шаг можете пропустить, он для наших целей не понадобится. Теперь установите вновь созданный проект как главный. Для этого найдите кнопку Проекты (я располагаю ее справа, у вас может быть другое место), подведите на нее курсор. Должно появится всплывающее окно со списком проектом. Выберите вновь созданный, кликните по нему правой кнопкой мыши в списке доступных действий выберите “Установить как главный проект”. После этого название вашего проекта должно выделиться жирным шрифтом:

Установка главного проекта в NetBeanse

Установка главного проекта в NetBeanse

После настроек можно переходить к замене.

В главном меню выберите пункт Правка, в выпадающем меню пункт Замена в проектах…:

Замена в проектах

Замена в проектах

В открывшемся окне задайте строку поиска и замены, обязательно выберите переключатель Главный проект и нажмите на кнопку Найти:

Первый фрагмент

Первый фрагмент

Программа осуществит поиск по критериям и отобразит результаты. Вы можете убрать переключатели в виде чекбоксов напротив тех файлов, в которых не желаете производить замену, а также перейти к фрагменту кода, в котором найдены совпадения нажав на + слева от имени файла и кликнув два раза по найденным строкам. Тут также возможно отключение отдельных фрагментов, которые не будут подвергнуты замене:

Результаты поиска

Результаты поиска

После того, как вы сверили данные для замены необходимо подтвердить операцию нажав на следующую кнопку:

Подтверждение замены

Подтверждение замены

В строке состояния отобразится сообщение Замена файлов завершена:

Замена завершена

Замена завершена

Повторите процедуру для замены второго фрагмента:

tap-zamenyi-386×300.png” alt=”Второй этап замены” width=”386″ height=”300″ /> Второй этап замены

По окончании замены, обновите файлы на сервере.

Надеюсь используя предложенный мной вариант быстрой замены _trackEvent() на ga(‘send’, ‘event’) вы сэкономите время на переходе к Universal Analytics. Не забудьте произвести замену и других фрагментов кода. О том что нужно заменить в коде отслеживания при переходе от Google Analytics на Universal Analytics я писал ранее в этом материале.

Поделитесь своим опытом перехода на Universal Analytics в комментариях.

Кейсы и инструкции по настройке в вашем ящике. Подпишитесь сейчас!
я даю согласие на обработку персональных данных

13 комментария(ев) к “Быстрая замена _trackEvent() на ga(‘send’, ‘event’)

  1. Если с самого начала делать все через jQuery, а не через onlcick, то все сведется к правке одного файла (минутное дело).

  2. @Plazik, согласен, но в документации Google Analytics приводится пример с ссылкой и в теге A прописывается как onClick, поэтому такая реализация достаточно широко распространена

  3. Иван, здравствуйте!

    Во-первых спасибо за блог. Мало очень литературы прежде всего по GTM. Много чего черпаю от вас.

    А вопрос следующий.

    В GTM настроено достаточно много событий на классический GA. Осуществляем переход на UA.

    Сам код GA установлен не через GTM. Но при этом ряд отслеживаний событий осуществляется через “устаревший” trackEvent. Для отслеживания кликов по ссылкам и просто кликов – соответственно есть тег “Классический GA” с GA Event.

    На всякий случай спрошу – требуется ли в GTM после перехода на UA и установку счетчика менять тип тега с “Классический GA” на Universal Analytics?

    Замена trackEvent понятна. А есть ли еще какие-то “подводные камни”, которые придется перенастраивать? (кроме перечисленных в офиц руководстве типа coockies, пользовательских переменных и т.д.)

    Большое спасибо!

    • Спасибо, Алена!

      Я бы рекомендовал перенести код отслеживания с сайта в контейнер UA в GTM, это более правильная реализация. По замене кода – код от Universal Analytics отличается от классического Google Analytics, по этой причине подлежит замене весь код на новую версию. Если вопрос еще в замене тегов с UA на GA, то достаточно изменить тип тега и заполнить необходимые поля. Все достаточно просто, особенно если используете макросы (меньший объем информации приходится вносить вручную).

  4. Добрый день! Спасибо за статью, возник такой вопрос(возможно не совсем к этой теме относится, но все же):
    есть сайт, на нем есть различные формы обратной связи ( заказ продукта, отправка резюме, задать вопрос , запрос на демо-версию и тп), и необходимо настроить отслеживание отправки этих форм. То есть, посетитель зашел, заполнил некую форму и отправил ее. (То есть настройка событий в UA) ВАЖНО: после того как он нажимает “отправить” у него не появляется “thank you page”, а просто на этой же странице появляется сообщение типа “спасибо, ваш запрос принят” (урл не меняется).

    Настроили так : на кнопку “отправить” повесили вот это
    onSubmit="ga('send', Event', 'Заказ определенного продукта', 'Отправлена заявка');"
    (важно отслеживать именно заполненную отправленную форму а не просто клик по кнопке “отправить” поэтому onclick по сути тут не подходит, наверное…)
    (там где “заказ определенного продукта” стоит соответственно название продукта )
    но события не считаются.
    проверяли, заполняли формы заказа продукта – не работает.
    Подозреваю, что этот код onSubmit настроен неверно, подскажите как правильно настроить?

    еще важный момент: есть сам сайт site.ru и есть его поддомен forms.site.ru
    все формы обратной связи находятся как раз на поддомене. Этот поддомен был внесен в UA как ресурс, для него был сформирован код отслеживания UA, код был добавлен на все страницы , вообщем все сделано по правилам, – но, тем не менее события не считаются ни в основном домене, ни в поддомене.

    Пробуем это реализовать теперь через GTM, но не получается(

    • @Татьяна, onSubmit используется для тега FORM, попробуйте его использовать в этом теге. Во вторых, если у Вас есть проверка формы перед отправкой, добавьте вызов фиксации события GA в нее в том месте, где проверка завершается успешно.

  5. Спасибо за такой быстрый ответ!
    Хочу уточнить “onSubmit используется для тега FORM, попробуйте его использовать в этом теге” – вот это не очень поняла, как в итоге будет выглядеть код на кнопке?
    Вот этот имеется ввиду

    onSubmit=”ga(‘send’, Event’, ‘Заказ определенного продукта’, ‘Отправлена заявка’);”

    “Во вторых, если у Вас есть проверка формы перед отправкой, добавьте вызов фиксации события GA в нее в том месте, где проверка завершается успешно.”

    -такого нет( Если форма заполнена корректно, она сразу отправляется без дополнительных thank you page (пользователю на этой же странице без изменения урла только выводится сообщение что форма отправлена )

    • Да, onSubmit используется для тега

      , в по второй части рекомендую обратиться к разработчикам сайта и уточнить логику работы формы. Если есть проверка перед отправкой полей формы, есть скрипт, который эту работу выполняет
  6. Спасибо за ответы, пробуем делать теперь через GTM , но возникли опять проблемы(
    Все вроде по правилам сделали, но при отладке пишется “there are no tags in the container” – подскажите в чем тут может быть загвоздка?
    GTM подключен, теги созданы , версия создана и опубликована…
    Что еще может быть, не знаю(

    • @Татьяна, сложно искать причину проблемы не работая с сайтом. Я затрудняюсь ответить на Ваш вопрос

  7. Да, понимаю, с этой проблемой уже разобралась…даже смешно ..)
    Оказывается просто эта фраза появлялась потому, что на странице не было выполнено ни одного сценария для того, чтобы теги начали работать.
    То есть я просто открывала страницу и смотрела отладку.
    Но стоило кликнуть куда-то и тут же информация поменялась…Вот так бывает)

    Просто изначально при отладке у меня сразу теги срабатывали ( даже если никаких действий не выполнялось), а затем я поменяла настройки.

Добавить комментарий

Current month ye@r day *