There are a lot of threads in the community on this, but basically, you will need some Javascript and to twist a little bit your Munchkin code. You can use cookie control software too, such as onetrust.

On Marketo landing page, you will need to deactivate munchkin tracking and replace it with custom munchkin code.

All in all, no out of the box switch. Then is depends on the skills you can rely on in term of JS.

Actually on pages where Marketo forms are present, cookies run even before consent to collect personal data.

It's not so much that cookies "run."

When you run Munchkin.init() -- the timing of which is completely under your control on non-Marketo LPs, but requires custom code for Marketo-hosted LPs, as you can read in the link below -- then the cookie is set and the initial Visit Web Page activity is logged.

If you want to run Munchkin.init() only after a form is successfully submitted with the user's consent (or if their consent has been previously stored) you should run Munchkin.init() in a Forms API onSuccess event listener function. Be aware that you can't immediately redirect someone to another page if you're doing work in the onSuccess; you have to pause to make sure the work is complete first.

In addition, if someone has already consented but opens an email on a new device, [a] they'll have an associated web session but [b] you won't immediately have the values from their Marketo lead record. So you will probably want to fetch those values into the page.