Регулярки и ругулярки в JS

Нам нужно отследить с помощью регулярки ссылку https://tver.petrovich.ru/catalog/18410/164371/

Как это сделать обычной регуляркой

/catalog/.+/\d+
/catalog/.+/[0-9]+
/catalog/[0-9]+/[0-9]+
/catalog/\d+/\d+

. точка означает любой символ

+ означает один или более

Т.е. запись .+ ищет любые символы до следующего элемента регулярки.

\d любая цифра

\d+ находит числа – последовательности из 1 или более цифр:

[0-9] последовательность цифр, вообще тоже самое что и \d Вообще так указываются последовательности, например [A-Za-z0-9] ищет все буквы в любом регистре и цифры, а вот так наоборот не ищет [^A-Za-z0-9]

Как это сделать регуляркой в JS

Слеши "/" говорят JavaScript о том, что это регулярное выражение. Они играют здесь ту же роль, что и кавычки для обозначения строк. Т.е. ругулярку нужно писать в /регулярка/ И из это возникает необходимость экранировать /, вот так \/

Вот так ищется нужный url:

if (window.location.href.search(/catalog\/[0-9]+\/[0-9]+/) > 1){…..}

Подробнее

https://learn.javascript.ru/regular-expressions-javascript

http://www.regextester.com/

 

 

 

Как проверять гипотезы на данных

Конспект по докладу:

 

  1. Конечные гипотезы проверяем с помощью статистического критерия. Это математическое правило, формулы и алгоритм их применения.
  2. При использовании статистического критерия смотри на p-value:
  3. Как выбрать статистический критерий?


    Для каждой цели и условий теста есть свой статистический критерий




  4. Вот пример критерия Фишера:

 

 

Воронка по Красинскому

Самая корректная воронка в GA— это воронка по когортам.

Мы смотрим на пользователей, а не на сеансы.

Вот шаблон воронки

Объясню:

users::condition::ga:sessionCount==1;dateOfSession<>2017-04-01_2017-04-30;users::sequence::ga:eventAction==Step1_buy;->>ga:eventAction==Step2_buy;->>ga:eventAction==Step3_order;ga:transactions>0

users::condition:: — условие

dateOfSession<>2017-04-01_2017-04-30 — аналог настройки в сегментов сеанс между. Максимально 30 дней

users::sequence:: — последовательности в сегментах

Делал по видео:

 

 

cookieDomain : auto или Субдоменное отслеживание

Проблема:

However, if the visitor first visits test.simoahava.com, and then moves to www.simoahava.com, these two domains will have different _ga cookies, and thus different Client IDs, and thus the user will be a different user with a new session!

Вот пример:

https://screenpresso.com/=DSBic

https://screenpresso.com/=eTsOf

Решение:

 

Почему это исправит ситуацию:

The answer is in the cookieDomain setting. When you set cookieDomain to auto, the following will happen with a (fictional) domain like www.simoahava.co.uk:

GA tries to write the cookie on .co.uk, which is the first possible root domain candidate. This fails because the browser is not authorized to write a cookie on a top-level domain like that.
Next, GA tries to write the cookie on .simoahava.co.uk, which is the next possible root domain candidate. This works because that’s a valid domain to write the cookie on.

Саммари по MP

  1. Сохранять источник/канал/ключевое слово/объяву чтобы источник не перезатирался
  2. Используем ni=1, чтобы не плодить новый сеанс
  3. Нужно хранить ip, и User-Agent пользователя и передавать их в теле запроса.

    В самой справке об этом тоже немного упоминается:  https://developers.google.com/analytics/devguides/collection/protocol/v1/reference?hl=ru#post
    Вот параметры, которые позволяют переопределить ip и user-agent:  https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ru#uip и https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ru#ua

  4. Использовать POST запрос

Советы по GTM

Использование DOM элементов (document ready)

Если вы в своём коде собираетесь обращаться к элементам которые находятся на страницы (кнопки, формы, поля и пр.), то свой код нужно оборачивать в такую конструкцию:

$(document).on('ready', function(){
    тут_вставьте_ваш_код
});

Это даст гарантию того, что ваш код не сработает раньше, чем загрузятся элементы DOM (т.е. страница).

 

Сохранность кода (замыкание)

При интеграции кода GTM в глобавльную обрасть видимости попадают все ваши объявленные переменные, что может повлечь перезатирания переменных, которые используются на сайте. Для экранирования вашего кода стоит использывать замыкания. (https://developer.mozilla.org/ru/docs/Web/JavaScript/Closures)

(function(){
    тут_вставьте_ваш_код
})();

Узнать текущую и предшествующиую страницуwindow.location + document.referer

  • Чтобы узнать с какой страницы пришел пользователь стоит использовать глобальную переменную document.referrer
  • Для того, чтобы узнать на какой странице сейчас находится пользователь стоит использовать переменную window.location (http://javascript.ru/window-location):

<tbody> </tbody>

Свойство Описание Пример
hash часть URL, которая идет после символа решетки ‘#’, включая символ ‘#’ #test
host хост и порт www.google.com:80
href весь URL http://www.google.com:80/search?q=javascript#test
hostname хост (без порта) www.google.com
pathname  строка пути (относительно хоста) /search
port номер порта 80
protocol протокол http:
search часть адреса после символа ?, включая символ ? ?q=javascript

Пример:

dataLayer.push({'event': 'GAevent', 'eventCategory': 'категория', 'eventAction': 'действие', 'eventLabel': window.location.href});

Проверять есть ли jQuery на странице

Иногда разработчики сайтов не используют jQuery, поэтому стоит проверить загружен ли он на странице.
Для этого зайдите в консоль и в строке ввода вставьте jQuery. Если вывелось Uncaught ReferenceError: jQuery is not defined(…), то значит jQuery не подключен на странице и стоит его подключить или попросить разработчиков.

Если же jQuery подключен, но ваш код срабатывает раньше чем он загружается, то можно использовать функцию window.onload:

window.onload = function() {
    тут_вставьте_ваш_код
}

Как работаю отчеты в CubeLine

  1. С помощью PQ забираются данные из систем и приводятся в вид: Кампания, Дата, Показы, Клики, Расход, Система
  2. Также выкачивается GA: Система, Кампания, Дата, Сессии,Отказы и т.д. туда дальше
  3. Присоединяем таблички система друг к другу с помощью функции PQ — «добавить запросы»
  4. С помощью функции PQ — «добавить запросы» мы «присоединяем» таблички GA и контекста друг к другу. В данных GA в показах/кликах/расходах будет стоять null и наоборот.
  5. С помощью файла словаря к полученной табличке присоединяются различные сегменты: поиск/рся и т.д. Связываем с помощью функции PQ — «Слияние запросов», ключ указываем — кампания|система. Идет внутренние соединение (только совпадающие строки). Вообще, в файл словарь попадают название всех кампаний из систем, GA и удаляются дубликаты.
  6. Из этих данных строятся сводные таблички. Т.е. сводная таблица «схлопывает» те сегменты, что мы указали в словаре.