Я пытаюсь скопировать Google Analytics UTM builder в Google Sheets.У меня есть формула, которую я использую в другом месте, которая работает чуть менее чем в 50% случаев, но нуждается в некотором дополнительном регулярном выражении.
=ARRAYFORMULA(IF(ISBLANK(A2:A),"",CONCAT(REGEXREPLACE(A2:A, "(/[^/]+)(?:/(?:\?|ref=)[^/]*)?$", "$1/"),"&utm_source=cpc&utm_medium=mysite")))
Вот Google Sheet , показывающий примерыи результат в столбце D. Формула с регулярным выражением в нем частично работает на предоставленных данных.Копию можно сделать с помощью меню «Файл»> «Создать копию».
После того, как файл JS , использованный на странице Инструментов Google для разработчиков, был унифицирован, похоже, существует функция регулярного выражения, которую, как мне кажется, использует Google длявыполнить построитель строк, но формат отличается от того, как он используется в Google Sheets.
f = function(e) {
var t = e.replace(".", "\\.");
return h("^(?:https?://)?(:?" + t + ")(?:$|[/?#])")
},
Если вы посмотрите на строки с 5 по 8 в Google Sheet, это может быть просто необходимо настроитьк существующей формуле, чтобы справиться с добавлением строки в ячейки с расширениями файлов и не выполнять никаких действий, если строка UTM уже присутствует.
EDIT Существующая формула, содержащая регулярное выражение, добавляет строку "& utm_source= cpc & utm_medium = mysite "до конца ячеек. В приведенном ниже списке показан ОРИГИНАЛЬНЫЙ URL-адрес с последующим ТРЕБУЕМЫМ результатом
https://www.aol.com
https://www.aol.com/?utm_source=cpc&utm_medium=mysite
(Стандартный URL без расширений файла, поэтому добавляется / и добавляется строка UTM. СОСТОЯНИЕ: РАБОТАЕТ)
https://aol.com
https://aol.com/?utm_source=cpc&utm_medium=mysite
(Стандартный URL сНет www или расширений файлов, поэтому добавляется / и добавляется строка UTM.СОСТОЯНИЕ: РАБОТАЕТ)
https://www.aol.com/
https://www.aol.com/?utm_source=cpc&utm_medium=mysite
(стандартный URL-адрес без расширений файла, но присутствует окончание /, поэтому это не таки добавлена строка UTM. СОСТОЯНИЕ: РАБОТАЕТ *
https://www.aol.com/index.html
https://www.aol.com/index.html?utm_source=cpc&utm_medium=mysite
(Расширения файлов существуют, поэтому путем добавления / кконец вместе с добавленной строкой UTM разрывается. СОСТОЯНИЕ: СБОЙ. Не требуется никаких расширений файлов /)
https://www.aol.com/index.php
https://www.aol.com/index.php?utm_source=cpc&utm_medium=mysite
(Существует другой тип расширения файла (которых будет несколько сотен), поэтому, добавляя / в конец вместе с добавленной строкой UTM, он разрывается. СОСТОЯНИЕ: СБОЙ. Не требует расширений файла / on)
http://www.asos.com/puma/puma-suede-classic-black-trainers/prd/3272954
http://www.asos.com/puma/puma-suede-classic-black-trainers/prd/3272954?utm_source=cpc&utm_medium=mysite
(Эта строка использует идентификатор продукта, поэтому, добавляя / к концу вместе с добавленной строкой UTM, он разрывается. СОСТОЯНИЕ: ОТКАЗ.Не требуется / не идентификаторы продуктов)
http://www.asos.com/puma/puma-suede-classic-black-trainers/prd/3272954?utm_source=cpc&utm_medium=asos
http://www.asos.com/puma/puma-suede-classic-black-trainers/prd/3272954?utm_source=cpc&utm_medium=asos
(строка UTM уже существует, поэтому она добавляется на agaiп.СТАТУС: СБОЙ.Если UTM существует, мы должны его игнорировать и оставить ячейку такой, какая она есть)