Можно отредактировать ранее отправленную транзакцию, используя отрицательные значения https://support.google.com/analytics/answer/1037443?hl=en
В принципе Вы описали все верно, но если используется расширенная электронная торговля, то у нее другой код и подключаемый модуль.
Обратите внимание на замечание про момент отправки данных и описание транзакции: https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#loadit
При чем здесь UTM метка? Вам нужно зафиксировать действия посетителя ПОСЛЕ нажатия на кнопку или факт отправки формы?
Вы используете пользовательские параметры, при формировании отчетов укажите их в качестве параметров, по которым они строятся
Существует лимит в 8 килобайт для запросов POST и 2 килобайта для GET , это в Universal Analytics. Примерно 8 тысяч с небольшим знаков получается в запросе
Посмотрите в расширенных сегментах. Можно указать выборку на уровне посетителя, а не сеанса
Интересно, а какое количество товаров Вы передаете таким образом в списках?
Для отслеживания подобных соц.действий пользователя (лайки, ретвиты и т.п.) нужно использовать callback функции социальных сетей, в которых выполнять код GA фиксирующий такое действие.
В GA правилами запрещено отслеживание конкретного пользователя. User ID это не уникальный идентификатор, по которому вы получите всю информацию о пользователе, у этого параметра другое назначение.
Если очень хочется отслеживать конкретного пользователя - пишите на уровне пользователя в пользовательский параметр его идентификатор, а затем зная его значение формируйте отчеты. Но это нарушение правил GA
Это не через апи делается, а через протокол передачи данных https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#enhanced-ecomm
Сформированный запрос можно отправить любым удобным способом