将Google Analytics UTM跟踪添加到Google表格中的单元格

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (34)

我正在尝试在Google表格中复制Google Analytics UTM构建器。我有一个我在其他地方使用的公式,只有不到50%的用例,但需要一些额外的正则表达式添加到它。

=ARRAYFORMULA(IF(ISBLANK(A2:A),"",CONCAT(REGEXREPLACE(A2:A, "(/[^/]+)(?:/(?:\?|ref=)[^/]*)?$", "$1/"),"&utm_source=cpc&utm_medium=mysite")))

这是一个Google表格,显示D列中的示例和结果。其中包含正则表达式的公式部分用于提供的数据。可以使用“文件”>“制作副本”进行复制。

在谷歌开发工具页面上使用的JS文件被取消后,似乎有一个我认为Google用来执行字符串构建器的正则表达式功能,但格式与Google表格中的使用方式不同。

f = function(e) {
            var t = e.replace(".", "\\.");
            return h("^(?:https?://)?(:?" + t + ")(?:$|[/?#])")
        },

如果您查看Google表格中的第5行到第8行,可能只需要对现有公式进行调整,以应对将字符串添加到具有文件扩展名的单元格,并且如果已存在UTM字符串则不执行任何操作。

编辑包含正则表达式的现有公式将字符串“&utm_source = cpc&utm_medium = mysite”添加到单元格的末尾下面的列表显示了ORIGINAL网址,之后是必需的结果

提问于
用户回答回答于

首先:

^((?:^https?:\/\/[^\/\n]+))(\/?$|\/)((?:(?!\?utm_source=cpc).)*)$

替代: $1/$3?utm_source=cpc&utm_medium=mysite

这里的主要想法是

  • 捕获所有内容,直到第一个目录分隔符(或早期结束)作为域部分
  • 将第一个/引入完全匹配并重建它以获得规范化的URL
  • 用一个排除的顽固贪婪的标记来捕捉其余部分utm_source=cpc

演示

但是,由于Google表格不支持外观,因此无效。仅使用基本的re2语法来制作它很难。无论如何,我找到了解决方案。这很丑陋,应该进行改进,但表明可以做到:

=ARRAYFORMULA(IF(ISBLANK(A2:A),"",CONCAT(REGEXREPLACE(A2:A, "^((?:^https?:\/\/[^\/\n]+))(?:\/?$|\/)(.*?)(?:\?.*)?$", "$1/$2"),IF(REGEXREPLACE(A2:A, "^.*?(\?.*)?$", "$1")="", "&utm_source=cpc&utm_medium=mysite", REGEXREPLACE(A2:A, "^.*?(\?.*)?$", "$1")))))

这里的基本想法是:

  • 重建标准化的URL(前面两个步骤相同),直到?查询参数显示出来。如果没有,则添加固定文本,否则保持原样。

DEMO2

除此之外,Google表格无法胜任。帮自己一个忙,用另一种工具或不同的方法处理它。

所属标签

可能回答问题的人

  • 嗨喽你好

    7 粉丝480 提问9 回答
  • uncle_light

    5 粉丝518 提问8 回答
  • 富有想象力的人

    3 粉丝0 提问7 回答
  • 无聊至极

    4 粉丝504 提问6 回答

扫码关注云+社区

领取腾讯云代金券