【问题标题】:Shopify regular expressions for checkout processShopify 用于结帐过程的正则表达式
【发布时间】:2019-12-19 22:36:53
【问题描述】:

我正在与我公司的 Google Ads 团队一起在 Shopify 商店中工作,他们要求我为结帐流程的几个步骤提供一些正则表达式。我创建了它们,一切都运行良好,直到他们注意到 Analytics 有时会在 URL 查询参数中添加一个 _ga 参数。

我原来的表达是:

1.在购物车中时 - 没问题

\/cart

2。结帐的第一步 - 联系信息 - 分几行以便于阅读

(
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)$
    |
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)\?step=contact_information
)

在这一部分中,我添加了 step=contact_information 作为 OR 选项。它通常不存在,除非当您返回联系信息时,它会作为步骤添加到 URL 中。我知道这不是理想的方式,但我对正则表达式还很不熟练。

3.发货信息

(
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)\?step=shipping_method
    |
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)?(.*)&step=shipping_method
)

在这部分它总是有step=shipping_method,但它也可以有previous_step=contact_information。这也不理想,但我不知道该怎么做。

4.付款信息

(
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)\?step=payment_method
    |
    \/([0-9]*)\/checkouts\/([a-z0-9\-]*)?(.*)&step=payment_method
)

与第 3 步相同,在这种情况下,它总是有step=payment_method,但也可以有previous_step=shipping_method。如第 2 点和第 3 点,并不理想。

5.处理 - 这部分工作正常,因为我对查询参数不感兴趣

\/([0-9]*)\/checkouts\/([a-z0-9\-]*)\/processing

6.谢谢页面 - 这也很好,因为我对查询参数不感兴趣

\/([0-9]*)\/checkouts\/([a-z0-9\-]*)\/thank_you

_ga 参数问题

这些正则表达式在常规 URL 上工作正常,但是当我将 _ga 参数添加到 URL 时,它们不匹配。我认为有一种方法可以匹配查询参数,但我不确定如何匹配某些并排除其他参数。

_ga 参数通常在后续步骤中持续存在

点 2.、3. 和 4. 的所有可能匹配的列表:

不带和带 _ga 的联系信息

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?step=contact_information

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es&step=contact_information

不带和带 _ga 的运送方式

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?step=shipping_method
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?step=shipping_method&previous_step=contact_information

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es&step=shipping_method
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es&step=shipping_method&previous_step=contact_information

不带和带 _ga 的付款方式

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?step=payment_method
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?step=payment_method&previous_step=shipping_method

/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es&step=payment_method
/25931284564/checkouts/df24e48ecc81f767583c4a26680bcb82?_ga=2.150710640.738515769.1576779089-71346777.1571176760%26_gac%3D1.16451458.1576260301.EAIaIQobChMI9v2c5Zqz5gIVr__jBx1VAgxPEAAYBCAAEgLccPD_BwE&locale=es&step=payment_method&previous_step=shipping_method

有什么想法可以解决这个问题吗?我很确定这很简单,但我的大脑无法处理更复杂的正则表达式:)

更新

为了更清楚一点,我需要用正则表达式实现的是明确识别漏斗的步骤。

我团队的 Google Ads 人员正在 Google Analytics(分析)中创建一个漏斗,他们将结帐中的相应步骤添加为漏斗的各个阶段。

所以基本上我只需要我的正则表达式能够使用或不使用_ga 查询,但始终检测特定步骤。

更新 2

我添加了所有可能的匹配项。我需要能够通过正则表达式识别特定步骤。所以基本上我需要一个用于联系信息的正则表达式,一个用于运输方式,一个用于付款方式,每个都只标识 URL 中带有或不带有_ga 的特定步骤。

【问题讨论】:

    标签: regex shopify query-parameters


    【解决方案1】:

    我相信对于结帐网址,您可以简单地使用这个正则表达式:

    /([0-9]+)/checkouts/([a-z0-9-]+)(?:.*step=([a-z0-9_-]+))?
    

    无论 url 是否带有 _ga 参数。 基本上它会在一场比赛中为您提供三组,第三组将包含step参数值,例如:contact_information

    示例: https://regex101.com/r/C1GuDY/1

    【讨论】:

    • 不,因为这将匹配第 2、3 和 4 步,我需要将它们分开,因为 Google Ads 主题使用了一个漏斗,它们将每个步骤分开。查询参数用于区分具体步骤。如果检查,三个的基本 URL 相同,查询参数有什么变化。
    • 这个正则表达式仍然匹配步骤 2、3 和 4。我需要单独的正则表达式来匹配具体步骤。有了这个,步骤 2、3 和 4 一直都匹配。这就是为什么我特意包含了步长值,例如contact_informationshipping_methodpayment_method
    • 我更新了我的问题,添加了一些关于我需要什么的更多信息。
    • @MihailMinkov,如果您打开我的答案中的链接,您会看到正则表达式 Group 3 将具有 step 值。因此,基于此您可以区分网址。您只需要一个正则表达式即可涵盖所有这些情况。
    • 我不确定我的解释是否正确,我有 3 个单独的匹配项,而这个正则表达式匹配所有这些项。我需要它只匹配 3 个中的一个。我会用所有不同的可能性更新我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多