diff --git a/docs/hypernode-platform/botstopper/how-to-use-botstopper.md b/docs/hypernode-platform/botstopper/how-to-use-botstopper.md index 73cf9f15..d8b8aac9 100644 --- a/docs/hypernode-platform/botstopper/how-to-use-botstopper.md +++ b/docs/hypernode-platform/botstopper/how-to-use-botstopper.md @@ -1,8 +1,8 @@ --- myst: html_meta: - description: Learn how to enable Botstopper, choose an AI policy, and write custom - Botstopper policies on Hypernode. + description: Learn how to enable Botstopper, choose an AI policy, preserve UTM + attribution after a challenge, and write custom Botstopper policies on Hypernode. title: How to use Botstopper on Hypernode | Hypernode --- @@ -72,6 +72,26 @@ Use `aggressive` if you want the strictest AI blocking. Use `moderate` if you wa Some AI crawlers also require `robots.txt` rules before they respect your opt-out. Botstopper blocks requests at the webserver layer, but `robots.txt` is still useful for crawlers that require policy signals there. See the [Magento 1 robots.txt](../../ecommerce-applications/magento-1/how-to-create-a-robots-txt-for-your-magento-1-shop.md) or [Magento 2 robots.txt](../../ecommerce-applications/magento-2/how-to-create-a-robots-txt-for-magento-2-x.md) articles if you need to configure one. +## Preserve UTM Attribution After a Challenge + +When a visitor passes a Botstopper challenge, the browser lands on your shop with the challenge page as the technical referrer. This breaks referrer attribution in client-side analytics tools such as Plausible or GA4. Botstopper restores the original `Referer` header on the request it forwards to your shop, but tools that read `document.referrer` or UTM tags cannot be corrected that way. + +To keep attribution working for those tools, Botstopper can append the original external referer host to the post-challenge redirect URL as `utm_source` and `utm_medium` query parameters. For example, a visitor coming from `https://www.google.com/search?q=shoes` lands on `https://example.com/?utm_source=www.google.com&utm_medium=referral` after passing the challenge. + +This behavior is enabled by default. Disable it with: + +```bash +hypernode-systemctl settings botstopper_utm_referer_enabled False +``` + +Enable it again with: + +```bash +hypernode-systemctl settings botstopper_utm_referer_enabled True +``` + +Botstopper only adds these parameters when the original referer is an external domain and the redirect URL does not already contain UTM parameters. + ## How Botstopper Handles Requests Botstopper evaluates policy rules from top to bottom. A rule can allow, deny, challenge, or weigh a request. diff --git a/docs/hypernode-platform/tools/how-to-use-the-hypernode-systemctl-cli-tool.md b/docs/hypernode-platform/tools/how-to-use-the-hypernode-systemctl-cli-tool.md index 9673151b..0280d250 100644 --- a/docs/hypernode-platform/tools/how-to-use-the-hypernode-systemctl-cli-tool.md +++ b/docs/hypernode-platform/tools/how-to-use-the-hypernode-systemctl-cli-tool.md @@ -27,6 +27,7 @@ To see which values you can set and which values they are allowed to have take a | **block_bad_ips_enabled**
Blocks abusive IPs with high AbuseIPDB.com confidence scores | True | True, False | | **botstopper_ai_policy**
Choose how strict Botstopper should be for AI crawlers and AI clients | aggressive | aggressive, moderate, permissive | | **botstopper_enabled**
Enable Botstopper bot protection | False | True, False | +| **botstopper_utm_referer_enabled**
Pass on the external referer as
utm_source and utm_medium after a challenge
| True | True, False | | **composer_version**
Change the Composer version | 2.x | 1.x, 2.2, 2.6, 2.7, 2.8, 2.x | | **disable_optimizer_switch**
Disable the optimizer switch | False | True, False | | **elasticsearch_enabled**
Enable Elasticsearch | False | True, False | @@ -119,6 +120,7 @@ If an invalid value is provided you will be notified of this during the setting - `botstopper_enabled`: Enables Botstopper bot protection. - `botstopper_ai_policy`: Configures the Botstopper AI policy. Possible values are `aggressive`, `moderate`, and `permissive`. +- `botstopper_utm_referer_enabled`: Passes on the original external referer as `utm_source` and `utm_medium` query parameters after a Botstopper challenge. Enabled by default. See [How to Use Botstopper on Hypernode](../botstopper/how-to-use-botstopper.md) for details about enabling Botstopper, configuring it per vhost, and writing custom policies.