У Вас нет ошибки, просто в зависимости от места вызова dataLayer разный синтаксис, т.к. по факту dataLayer это объект JavaScript
Во втором случае просто ничего передавать не нужно, используйте передачу данных только в том случае, если есть значение для user id
Если у Вас тег активируется ДО объявления макроса, то значение может быть не передано.
Перенесите определение уровня данных ДО кода GTM и проверьте работу:
dataLayer = [];
Если вы по умолчанию передаете значение NONE , то для GA это будет как значение user-id и все будет склеяно в одного пользователя, по умолчанию значение должно быть "не определено"
Можно использовать имя файла изображения
С помощью куки считайте количество просмотров карточек товара и как оно будет равно нужному значению отправляйте событие в GA, затем на это событий настройте цель
Это вариант для возврата используемый в расширенной торговле, если у Вас классическая торговля - нужен другой запрос
В выпадающем списке параметров/показателей ищите нужный, но не всегда он там может быть. Попробуйте создать свой отчет если нет возможности использовать в стандартном
В настройках можно создать группы контента, в которых указать нужные параметры для фильтрации по группам различных страниц
UA в этом контексте не имеет никакого отношения к версии Universal и не обозначает страну. https://support.google.com/analytics/answer/1032385?hl=ru
Выберите из списка не "Моя переменная 1", а название параметра созданного Вами
Записывайте нужное значение в макрос, в настройках тега Universal Analytics найдите блок отвечающий за дополнительные поля, в нем укажите &uid, в качестве значения ранее созданный макрос