Referrer does consider the entire URL, including query string.
In that case, if we have a central campaign landing page that's used across multiple channels - meaning there could be all sorts of combinations of UTM parameters attached to the URL, resulting in 25+ URLs - the best approach would then be to use a "referrer" [CONTAINS] "http://mainURL.com" contraint, correct?
'Referrer starts with' would also work and may be slightly faster.
If your base URL is the same for all channels and the only differences in the links are the query parameters, you should be able to use a 'Web Page is' constraint. The key with the Web Page constraint is it must exactly match the base URL including trailing slashes (or not) and hashes. You can typically see the base URL (not including www.domain.xxx) in the Webpage URL field of a Visit Web Page activity for that page (screen shot below). You can also see the Webpage ID field value in the Visit Web Page activity, which should match the Webpage ID field value in the Fill Out Form activity.
If your page has sections, you will need to add the base URL and the base URL with its hash values in the multiple value chooser field as in the following examples.
Thanks Sanford Whiteman. Your explanation makes sense for the most part.
The form was split up into a multi-step form, so each step appended #step-1 to the URL. This is relatively new for us, so that's probably why we hadn't seen this issue previously. The other versions of our multi-step forms have triggers based on the form ID alone without any other constraints, and that's why we don't see this issue for those trigger campaigns.
It still throws me off that there were some leads who had the #step-4 referrer url and still qualified for the trigger (form ID+Web Page constraint). But since there are inconsistencies, I won't be relying on this constraint anymore.
I've since built a patch campaign to wait 5 minutes after leads fill out the form + referrer then go through the necessary flow steps if it hasn't already, and it seems to be working. After monitoring for a few days, all leads are going through the patch campaign without issue so it does seem like referrer is the better constraint for non-Marketo LPs.
Lesson learned. (Is this noted in the product docs already?)
The form was split up into a multi-step form, so each step appended #step-1 to the URL. This is relatively new for us, so that's probably why we hadn't seen this issue previously.
I had a gut feeling it was the hash that was causing confusion. I like to exploit the hash-awareness in other contexts w/Marketo, so I keep an eye out for it. Switching to Referrer will both solve this problem and give you more flexibility in the future.