SOLVED

Re: All Marketo forms (still) blocked in Firefox even after trying "solutions"

Go to solution
Anonymous
Not applicable

EDIT: Looks like one actual solution here might be to get an SSL cert for our landing page domain (zozi.mktoweb.com CNAME'd as go.zozi.com) and use that URL in the loadForm call. Looks like that is possibly by contacting support: Add SSL to your Landing Pages - Marketo Docs - Product Docs ​ I will update this part of this post if that is the solution we go with / if it solves the issue.

As some of you are aware, Firefox now gives the option to enable tracking protection at all times (even outside of Private mode). Many users (like my self) choose this option while installing the browser, meaning it is on all the time. This means any request to marketo.com will be blocked by Firefox if the user has chosen that option during installation or is in Private Browsing mode. This results in Marketo forms not being loaded at all.

Screen+Shot+2016-07-20+at+6.58.16+PM (1).png

Firefox uses the Disconnect standard block list, which can be seen here: https://disconnect.me/trackerprotection/blocked


I have read all the threads here on getting around FF tracking protection and am still at a dead end.

When you call MktoForms2.loadForm('//app-sj16.marketo.com', ... it makes a request to the Marketo servers. This is blocked by tracking protection. Some users on here suggest using a CNAME and pointing that loadForm call at the aliased domain, like MktoForms2.loadForm('//mkto.zozi.com'... That does work, but only for an http connection (you cant use https on the CNAME unless the certificate on the Marketo end is signed for your aliased domain). If you use https, all modern browsers will stop the request via the aliased domain because it is insecure.

Screen+Shot+2016-07-20+at+7.00.51+PM (1).png

So, another thread suggests using your landing page domain (zozi.mktoweb.com in our case). This lets the form load in Chrome but just makes your HTTPS symbol in your URL red (bad!)

Screen+Shot+2016-07-20+at+7.27.24+PM.png

Firefox still blocks it completely

Screen+Shot+2016-07-20+at+7.10.28+PM.png

Hard to believe Marketo doesn't provide SSL for *.mktoweb.com...

So, here I am left with two options. A) don't use HTTPS on my website, or B) don't use Marketo forms. Which will it be? I think that is obvious if this doesn't get resolved fairly quickly...


How many people are effected by this?

1 ACCEPTED SOLUTION
SanfordWhiteman
Level 10 - Community Moderator

Upload the file /marketo-xdframe-relative.html (you can get it from the demo link) to your Marketo instance.

Then reference the path in setOptions:

MktoForms2.setOptions({

  formXDPath:"/rs/AAA-BBB-CCC/images/marketo-xdframe-relative.html"

});

And create a behavior + origin for that path.

(You could put the file on S3 or any other host, but to avoid more moving parts I would use Marketo.)

View solution in original post

38 REPLIES 38
Archana_Ranjan1
Level 2

Hello,

Can you please let me know how do I get "

marketo-xdframe-relative.html

" File.

Thanks.

SanfordWhiteman
Level 10 - Community Moderator

I just gave you the link directly to that file!

Jordi_Vicens
Level 1

Hi, I am trying to tackle the same issue with firefox in strict mode but till now I haven't got lucky at all..

This is the url where the issue can be spotted: https://jordi-voxbonecom.pantheonsite.io/contact/ 

I am getting a weird error of jQuery. Do you know what is happening?
Thanks in advance

SanfordWhiteman
Level 10 - Community Moderator

The host voip.voxbone.com does not point to your Marketo instance. It points to Heroku.

Jordi_Vicens
Level 1

Okey I see, so I need to create an instance in Marketo(which I guess I already have, where the forms come from, right?), then what I need to do then is creating a subdomain, which redirects to my instance then? I am a bit confused because I don't know so much about marketo..

SanfordWhiteman
Level 10 - Community Moderator

You don't need a new subdomain. You should already have a Primary LP Domain set up (look in Admin). Use that. Note of course that it must run over SSL, as noted previously. See https://blog.teknkl.com/happier-form-embeds-combat-tracking-protection/ 

SanfordWhiteman
Level 10 - Community Moderator
Archana_Ranjan1
Level 2

Thank you for your response Sanford.

I am sorry, I am not from development side and have experience in Marketo admin.

I shared your response with developer and still not able to identify how we get html file called "marketo-xdframe-relative.html"

Can you please explain, thanks for your support.

Anonymous
Not applicable

A half solution is by spinning up a Cloudfront distribution and pointing the loadForm call to the dxxxxxxxxx.cloudfront.net URL.

This allows the loadForm call to succeed, but submit still fails as the iframe that forms2.js loads has a hardcoded marketo.com URL in the script that it runs, resulting in that call failing inside the iframe, and since the iframe handles submits, it still doesnt work.

SanfordWhiteman
Level 10 - Community Moderator

Actually, you're still missing something.  You were so confident I didn't have the heart/time to tell you.

Have you checked to see you're actually getting the form submissions?

Anonymous
Not applicable

Damn you are right. See my edited comment. The XDFrame iframe still hits a marketo.com URL. I saw the form load and got ahead of myself. Shoot. Submits still fail even though form loads

SanfordWhiteman
Level 10 - Community Moderator

Upload the file /marketo-xdframe-relative.html (you can get it from the demo link) to your Marketo instance.

Then reference the path in setOptions:

MktoForms2.setOptions({

  formXDPath:"/rs/AAA-BBB-CCC/images/marketo-xdframe-relative.html"

});

And create a behavior + origin for that path.

(You could put the file on S3 or any other host, but to avoid more moving parts I would use Marketo.)

Anonymous
Not applicable

Hey Sanford Whiteman, thanks for posting this solution. I tried using your code and was able to get the form to load in Firefox with do not track on. However, the form itself hangs and doesn't submit. Does anything about my code below look off?

HTML:

<script src="//go.bandwidth.com/js/forms2/js/forms2.min.js"></script>

<form id="mktoForm_1821" class="mktoForm"></form>

JS:

MktoForms2.setOptions({

  formXDPath:"//go.bandwidth.com/rs/381-NQJ-981/images/marketo-xdframe-relative.html"

});

MktoForms2.loadForm("//app-sjp.marketo.com", "381-NQJ-981", 1821);

SanfordWhiteman
Level 10 - Community Moderator

Post a link to an example URL.

Anonymous
Not applicable
Anonymous
Not applicable

If you run the code I posted in CodePen, and try submitting the form there, it does the same as well.

SanfordWhiteman
Level 10 - Community Moderator

You forgot to run loadForm with your LP domain -- that's what sets the base for the XDFrame.

See this Pen​.

Screenshot of FF 52 Private Window + Tracking Protection:

tracking_prot_ffnetwork.png

Anonymous
Not applicable

This worked perfectly. Thanks for the help on this solution.

Anonymous
Not applicable

Awesome, definitely seems like it will work. My hack solution was edit forms2.min.js to point the iframe at my own copy of it with and edited script, but thats definitely not ideal. Good to know you can use MktoForms2.setOptions(...

I'm out of time today but ill report back tomorrow if this doesn't work.

SanfordWhiteman
Level 10 - Community Moderator

Yep, you could build a custom forms2.js, but as you said, it's not ideal. There have been critical bug fixes and you end up outside the upgrade path.  (As the user most likely to investigate bugs I can guarantee there are more to come, since I've been keeping a few to myself until I can recommend a fix!)