I'm trying to set up some query string tracking for form fills on Drupal Landing pages. I'm using Marketo forms and I want to track different sources using a query string.
I've tried lots of different options but nothing seems to be pulling the form fill into the Smart Campaigns I've set up for tracking. The options I've tried are:
But if I do a smart list of 'Fills in form' or just a basic smart campaign for 'fills in form' trigger all the names appear there but none have gone through the other tracking smart campaigns.
Normally for Marketo Forms and Marketo landing pages I would just do the second option and it works every time. But it's not working with the Drupal LPs.
Can anyone help figure out what the problem is?
Solved! Go to Solution.
Well, they are definitely wrong. What they're doing is using a one-time snapshot of the way form's HTML is it rendered way back when.
Marketo will, conveniently, still process this frozen-in-time version of the form (since the Form ID still exists in your Marketo instance) but of course it will not honor any fields added or removed since they last copied-and-pasted the HTML. And hidden fields you set up in the Marketo Form Editor will not only not appear on the form, they could not be autofilled on the form because they're not using the Forms 2.0 JS which is responsible for parsing cookie/query/referrer info into hidden fields. This same relatively simple functionality can be emulated with your own JS. But if you don't do anything, the hidden fields are just going to be empty.
Elliott Lowethey're using the /save endpoint with what amounts to a custom form. That's relatively good in that it creates a Filled Out Form activity. It's terrible in that it appears to be linked to Marketo but is disconnected from the form as it currently is maintained by Juli James.
Hey Juli – I miss your face
Sorry, can't help with Drupal, but step 2 as you outlined it works for us on Wordpress. What are you putting in as the constraint?
Do you mean smart campaign or smart list? We've been able to do tracking via Smart Lists exactly like you outline in option 2 (fills out form with query string constraint). If you're using a smart campaign, I'm also curious to know what you've set your flow to be
The questions Joe asked would give us some more clarity around an appropriate answer. I use option 1 as you outlined in your question. Here is my take and how my campaigns function, I would try using the "Fills Out Form" trigger with a Webpage Constraint instead of an additional "Visits Webpage in last 5 minutes" filter. Then you can build your flow step to request multiple referrer campaigns based on a URL parameter that you've identified.
Trigger: Fills Out Form (constraint Webpage = example webpage)
Flow: Request campaign:
Let me know if what I wrote helped you at all or if I'm wayyy off.
I would try using the "Fills Out Form" trigger with a Webpage Constraint
With embedded Forms 2.0 forms, you use the Referrer constraint, not Web Page, to identify the page hosting the form.
This is frequently misunderstood and people think there's no way to constrain by web page with embeds.
Dohh!!!! Thanks for the correction Sanford. Forgot these weren't MKTO pages.
I've not encountered an issue using Web Page as a constraint in the Filled Out Form filter with an embedded form. The smart list selects the same number of leads as when using the Referrer constraint. If you include http:// or https:// at the start of the URL, the Web Page constraint will not work. You must include those protocols at the start of the URL with the Referrer constraint. With the Referrer constraint you should use 'starts with' as your operator because the Referrer can contain query parameters. With the Web Page constraint you can use the 'is' operator because the Web Page never has query parameters.
A couple of caveats.
The idea that the Web Page constraint on Filled Out Form activities is unreliable for embedded forms is the basis for the mistake in this blog post and also discussed/debated in this thread.
You're right, though, that Web Page is more functional than not. But because it requires an exact match on the URL structure for non-Marketo pages, including the hostname (rather than allowing a partial match on the /path/to/page, like you can get with Referrer, or allowing just the friendly page name like you can with Marketo LPs) it's never my first choice. And any site that uses #! (hash-bang) navigation, like you alluded to when talking about HTML fragments (sections), will be almost impossible to use with exact Web Page constraints.
I also recall, though I can't find my old work on this right now, that there are some situations where Web Page just doesn't function -- at all. These may be related to programmatic Forms 2.0 API stuff.
I would grab the value into a hidden field -- your option #1. I find it to be the most flexible method.
Are you using an embedded form or is it iframed? If it is an iframe you would need to use some extra code to transfer the parameters to the iframe from the parent page. An embedded 2.0 should work out of the box though.
Ignoring the smart campaign for a second, I'd be curious to confirm if your data is being captured. When you fill out the form configured to populate the hidden field with the URL param, does the field update on the lead record in Marketo?
If yes, then it's just an error in the smart list to troubleshoot. If no then we can troubleshoot the data capture piece. But the answer to that question will narrow it down.
Wow! Thanks for all the responses...I'll try to answer everything here.
Joe Reitz (miss your face too ) - I use Option 2 on all our Marketo LPs, but it doesn't work on Drupal LPs. I'm trying to use a Smart Campaign with the 'Fills out form' trigger and the constraint of 'Querystring contains'. The leads are pulling into a smart list weirdly but not through the smart campaign.
Keith Nyberg - I'll try that set up now - I didn't know you had to use 'referrer' instead of 'webpage' for external pages. But will the query string option still work as a constraint?
Geoffrey Krajeski - I never out http or https at the beginning of my web URLs.
Sanford Whiteman and Elliott Lowe - thanks of the additional information.
Justin Norris - I've tried using option 1 but it doesn't work either. The form is an embedded form with additional Drupal code around it. I've just checked again with the hidden field and thats not being pulled through from the URL. In fact when I set up the Smart Campaign of 'Fills out form' with the constraint of 'Querystring NOT contains' it pulls in the lead WITH the query string!