我正在尝试根据目标页面/m/thanks(.*)在GA中设置渠道,其中之间有多个一次性页面,这些页面向URI添加了其他参数。

期望的目标是评估免费注册。流程看起来像这样。


目标页面:
/m/thanks?id=3LKJE-a723a72bc96cba65&oto=no&oto=no


oto=no&oto=no表示用户已经拒绝了两个OTO页面,因此产生了免费销售线索


第1步:目标网页:(文字网址)
第2步:注册页面:(文字网址)
步骤3:OTO 1:/m/thanks?id=3LKJE-a723a72bc96cba65


?id=之后的字符串是动态生成的,但不包含&oto=no


步骤4:OTO 2:/m/thanks?id=3LKJE-a723a72bc96cba65&oto=no


相同的ID,但只包含一个&oto=no实例



我不确定代表第3步和第4步的最佳方法,以确保仅记录那些页面。

最佳答案

描述
此正则表达式将:

验证字符串没有&oto=no
捕获ID的查询字符串值
验证字符串是否具有/m/thanks?
允许querystring属性以任何顺序出现

^(?!.*?&oto=no)(?=.*?[?&]id=([^&]*))\/m\/thanks(?=[?])


^匹配字符串的开头
(?!.*?&oto=no)进行验证,我们找不到oto=no键值集
(?=.*?[?&]id=([^&]*))向前看并确认我们有id并捕获值
\/m\/thanks(?=[?])确保字符串以/ m / thanks开头?

要么
此正则表达式将:

验证字符串中是否有2个oto=no实例
捕获ID值
验证字符串是否具有/m/thanks?
允许querystring属性以任何顺序出现

^(?=(?:.*?&oto=no){2})(?=.*?[?&]id=([^&]*))\/m\/thanks(?=[?])


^匹配字符串的开头
(?=(?:.*?&oto=no){2})验证oto=no在查询字符串中是否存在两次
(?=.*?[?&]id=([^&]*))捕获id
.*?(?=[?])捕获直到第一个?的字符串

10-08 15:16