首页 > 解决方案 > 使用 REGEX Google Data Studio 替换完整的引荐来源网址

问题描述

我正在使用 Google Data Studio 创建一份分析特定推荐网站的报告。我的数据源是我的网站 Google Analytics。

我想用纯文本值(即页面名称一)替换完整推荐人(例如格式 webaddress.com/page-name-one),以便在报告中更清楚地看到我的图表中的哪个页面和桌子。

我在计算字段中使用了以下公式,但它们似乎都没有改变 Full Referrer 以匹配我需要的内容。Data Studio 也将它们都识别为有效公式。

我已经匿名了我的例子,但它具有相同的原则。我试过了:

REGEXP_REPLACE(Full Referrer,"[webaddress\\.com\\/page\\-name\\-one].*","Page name one")

REGEXP_REPLACE(Full Referrer, 'webaddress.com/page-name-one', 'Page name one')

REGEXP_REPLACE(Full Referrer, 'webaddress\\.com\\/page\\-name\\-one', 'Page name one')

REGEXP_REPLACE(Full Referrer, 'name', 'Page name one')

REGEXP_REPLACE(Full Referrer, 'page-name-one', 'Page name one')

REGEXP_REPLACE(Full Referrer, 'page\\-name\\-one', 'Page name one')

标签: regexgoogle-analyticsgoogle-data-studiore2

解决方案


在我自己的一个 GA 数据源上对此进行测试时,我能够使用您的一种模式来实现这一点:

REGEXP_REPLACE(Full Referrer,'webaddress.com/page-name-one','Page name one')

然而,应该注意的是,.应该正确地转义(通过\或将其包装在一个字符类中,如[.];有关详细信息,请参阅re2 语法)。因为您必须使用双反斜杠,所以我也更喜欢使用 Data Studio 从 BigQuery 借来的东西(某种未记录的功能),即正则表达式字符串类型(r""r'')。使用它时,您只需要单反斜杠(除非您想要文字反斜杠):

REGEXP_REPLACE(Full Referrer,r'webaddress\.com/page-name-one','Page name one')

因为您使用的是REGEXP_REPLACE,所以匹配字符串之前或之后的任何内容在替换之后仍然存在 - 这意味着对于“m.facebook.com/l”的完整推荐人,REGEXP_REPLACE(Full Referrer,r'facebook\.com','FB')将返回“m.FB/l”

因此,您上面的模式将匹配字符串中任何位置的值,这可能不是您想要的。要将其锚定到开头,请使用^(start of string) 断言:

REGEXP_REPLACE(Full Referrer,r'^webaddress\.com/page-name-one','Page name one')

如果您只想匹配Full Referrer 的确切值(即不包括任何其他路径级别),请确保也使用$(end of string) 断言:

REGEXP_REPLACE(Full Referrer,r'^webaddress\.com/page-name-one$','Page name one')

请记住,如果您在数据源中作为计算字段执行此操作,您实际上并没有更改原始指标 - 您正在处理它的副本。因此,您需要将 Full Referrer 替换为您在数据源中命名计算字段的任何内容。

通常您希望为一堆站点或页面执行此操作,因此您可以在单个字段中使用CASE和处理所有这些逻辑:REGEXP_MATCH

CASE
  WHEN REGEXP_MATCH(Full Referrer,r'^webaddress\.com/page-name-one$') THEN 'Page name one'
  WHEN REGEXP_MATCH(Full Referrer,r'^site2\.com/example$') THEN 'S2 Example'
  ELSE Full Referrer
END

这些匹配是按顺序完成的,因此您甚至可以匹配一个或多个特定页面,然后仍然为该域上您不匹配的任何内容提供不同的值:

CASE
  WHEN REGEXP_MATCH(Full Referrer,r'^site\.com/$') THEN 'Site - Home'
  WHEN REGEXP_MATCH(Full Referrer,r'^site\.com/about$') THEN 'Site - About'
  WHEN REGEXP_MATCH(Full Referrer,r'^site\.com/') THEN 'Site - (other)'
  ELSE Full Referrer
END

ELSE如果您想将所有不匹配的值存储到“其他”分组中,而不是仅仅保留原始值,您也可以使用。

另一件要记住的事情是,由于 GA 中的共享字段,诸如 Source ( utm_source) 之类的内容也会出现在 中Full Referrer,因此您可能会在那里看到您通常不会期望的值。通常,您还可以通过仅过滤到“推荐”的默认渠道分组来摆脱这些。

如果您的模式仍然不匹配,请使用一些其他详细信息更新问题,例如输出实际是什么,是否有错误消息等 - 以及您是否将其作为数据源中的计算字段执行或单个图表上的“创建字段”按钮。


推荐阅读