An emergency workaround for app-𝑛𝑛𝑛𝑛.marketo.com form embeds after next week’s Marketo URL change

SanfordWhiteman
Level 10 - Community Moderator
Level 10 - Community Moderator

Been reluctant to provide a short-term workaround for the rather big change coming next week to Marketo URLs. But based on recent research, I have the sense that many people’s form embeds will be impacted on August 1st, so let’s prevent a bad day in MOPSville.

 

You want to put these two scripts as high as possible in the <head> of all pages, of course replacing pages.example.com in both places with your LP domain:

<script src="//pages.example.com/js/forms2/js/forms2.min.js"></script>
<script>
   "use strict";

   MktoForms2.loadForm = new Proxy(MktoForms2.loadForm, {
      apply(target, thisArg, [instanceURL, ...rest]) {
         return Reflect.apply(target, thisArg, ["//pages.example.com", ...rest]);
      }
   });
</script>

 

By β€œas high as possible” I mean literally right after your last <meta> tag if you can. It must run before anything else related to Marketo forms, including GTM (which might inject Marketo form tags).

 

If you have this in place, you don’t have to worry about finding all the occurrences of the Forms 2.0 library and loadForm() calls throughout your code.

 

The right thing to do long-term is, of course, find and permanently fix all form embed codes  that use the old domains. But the β€œfinding” part can be tricky, as can getting the right person to implement the fix.

 

P.S. I’ll update this post with more info about why the above works, for the JS learners.

867
4
4 Comments
Dave_Roberts
Level 10

Thanks for sharing this, something tells me this is going to be a popular post in early August!

SanfordWhiteman
Level 10 - Community Moderator

Something tells me the same. πŸ™‚

SanfordWhiteman_0-1690396445063.png

 

Daniel_Peacock
Level 2

Thanks for sharing, Sanford! This may be a life saver, or at least a good insurance policy for those of us who are paranoid about missing affected form embeds. Just to confirm: this code would be used exactly as-is (except for the two references to the user's LP domain) correct? 

SanfordWhiteman
Level 10 - Community Moderator

Yep, exactly.