Skip to content

Replace all gad_* parameters in VCL#40780

Open
sprankhub wants to merge 3 commits intomagento:2.4-developfrom
sprankhub:vcl-add-all-gad-params
Open

Replace all gad_* parameters in VCL#40780
sprankhub wants to merge 3 commits intomagento:2.4-developfrom
sprankhub:vcl-add-all-gad-params

Conversation

@sprankhub
Copy link
Copy Markdown
Member

@sprankhub sprankhub commented Apr 22, 2026

Description (*)

This makes sure that not only gad_source, but also gad_campaignid and all future gad_* tracking parameters are replaced. This way, the page will still be served by Varnish when a tracking parameter like gad_campaignid is used in the URL.

See https://support.google.com/google-ads/answer/16193746?hl=en.

Related Pull Requests

#40656

Fixed Issues (if relevant)

  1. Fixes [Issue] Replace all gad_* parameters in VCL #40781

Manual testing scenarios (*)

  1. Make sure you use Varnish and have the full page cache enabled.
  2. Flush the cache.
  3. Open the homepage like https://www.shop.tld/. It should load "slow" as you just flushed the cache.
  4. Open the homepage like https://www.shop.tld/ again. It should load fast as it is now served through Varnish.
  5. Open the homepage with the gad_campaignid like https://www.shop.tld?gad_campaignid=abc.
  6. Without the changes to the VCL in this pull request, the homepage will load "slow" as it is not a cache hit. With this change, the homepage will load fast as it is a cache hit.

Questions or comments

Make sure to apply the VCL to your Varnish instance during your testing. It is not enough to just check out the code - you also need to apply the VCL during testing.

Contribution checklist (*)

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
  • All automated tests passed successfully (all builds are green)

Resolved issues:

  1. resolves [Issue] Replace all gad_* parameters in VCL #40781: Replace all gad_* parameters in VCL

This makes sure that not only gad_source, but also gad_campaignid and all future gad tracking parameters are replaced.

See https://support.google.com/google-ads/answer/16193746?hl=en
@m2-assistant
Copy link
Copy Markdown

m2-assistant Bot commented Apr 22, 2026

Hi @sprankhub. Thank you for your contribution!
Here are some useful tips on how you can test your changes using Magento test environment.
❗ Automated tests can be triggered manually with an appropriate comment:

  • @magento run all tests - run or re-run all required tests against the PR changes
  • @magento run <test-build(s)> - run or re-run specific test build(s)
    For example: @magento run Unit Tests

<test-build(s)> is a comma-separated list of build names.

Allowed build names are:
  1. Database Compare
  2. Functional Tests CE
  3. Functional Tests EE
  4. Functional Tests B2B
  5. Integration Tests
  6. Magento Health Index
  7. Sample Data Tests CE
  8. Sample Data Tests EE
  9. Sample Data Tests B2B
  10. Static Tests
  11. Unit Tests
  12. WebAPI Tests
  13. Semantic Version Checker

You can find more information about the builds here
ℹ️ Run only required test builds during development. Run all test builds before sending your pull request for review.


For more details, review the Code Contributions documentation.
Join Magento Community Engineering Slack and ask your questions in #github channel.

@sprankhub
Copy link
Copy Markdown
Member Author

@magento create issue

@sprankhub
Copy link
Copy Markdown
Member Author

@magento run all tests

@lbajsarowicz
Copy link
Copy Markdown
Contributor

Related: #40656

@hostep
Copy link
Copy Markdown
Contributor

hostep commented May 4, 2026

@sprankhub: please update them here as well:

public function getMarketingParameterPatterns(): array
{
return [
'/&?gad_source\=[^&]+/',
'/&?gbraid\=[^&]+/',
'/&?wbraid\=[^&]+/',
'/&?_gl\=[^&]+/',
'/&?dclid\=[^&]+/',
'/&?gclsrc\=[^&]+/',
'/&?srsltid\=[^&]+/',
'/&?msclkid\=[^&]+/',
'/&?_kx\=[^&]+/',
'/&?gclid\=[^&]+/',
'/&?cx\=[^&]+/',
'/&?ie\=[^&]+/',
'/&?cof\=[^&]+/',
'/&?siteurl\=[^&]+/',
'/&?zanpid\=[^&]+/',
'/&?origin\=[^&]+/',
'/&?fbclid\=[^&]+/',
'/&?mc_(.*?)\=[^&]+/',
'/&?utm_(.*?)\=[^&]+/',
'/&?_bta_(.*?)\=[^&]+/',
];
}

(ideally, we should have a list defined in a single place, used both by the page cache module as by Varnish, but that's a bit of a refactor job)

@sprankhub
Copy link
Copy Markdown
Member Author

I updated the marketing parameters for the internal FPC as well.

I agree that this should be unified, but I think this should go into another PR.

@ct-prd-projects-boards-automation ct-prd-projects-boards-automation Bot moved this from Pending Review to Ready for Testing in Community Dashboard May 6, 2026
@engcom-Bravo engcom-Bravo added the Triage: Dev.Experience Issue related to Developer Experience and needs help with Triage to Confirm or Reject it label May 6, 2026
@engcom-Charlie engcom-Charlie self-assigned this May 6, 2026
@ct-prd-projects-boards-automation ct-prd-projects-boards-automation Bot moved this from Ready for Testing to Testing in Progress in Community Dashboard May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Progress: pending review Progress: testing in progress Project: Community Picked PRs upvoted by the community Triage: Dev.Experience Issue related to Developer Experience and needs help with Triage to Confirm or Reject it

Projects

Status: Testing in Progress

Development

Successfully merging this pull request may close these issues.

[Issue] Replace all gad_* parameters in VCL

7 participants