I have looked through the community for information on this objective.
Basically what I am trying to do is to dynamically change the text and content images on a single landing page dependent on which link a lead clicks on.
We are sending emails out of the same program to the different verticals that all link back to one LP. However, the text and images on the landing page need to change dependent on their vertical.
Does anyone have any insight into the best way to accomplish this without coding?
Sure, it's almost too easy.
Create a segmentation with segments for each vertical. Create segmented snippets. Pass the segment name=value in the query string (like ?vert=construction).
You should also make sure to capture query param to a hidden field on your form, so you can permanently put the lead into the segment (then they'll still get construction-related content even if the vert is not in the URL).
You can also do the same thing with pure HTML and CSS (no JS) using the CSS :target selector. In this case you include all the HTML blocks in the page, but only show the relevant one when they show up. Again in this case you'd include vert=whatever in the query string so you could capture it to a form. You'd add the vertical to the hashtag as well, so vert=whatever#whatever.
I've tried this approach before, being equally hopeful. If the values to calculate segmentation are being passed through a form, the follow-up page won't have the segmentation calculated in time, so the dynamic values on the thank-you page won't have enough time to show.
If you're showing the landing page dynamically based on what vertical they're in (i.e., CAN come from what link they click OR it can come in from other things already known about them in the database), then you can have them pre-sorted into a segmentation in Marketo. Then the landing page can have dynamic content based on those segmentations. That basically just allows you the ability to pre-calculate what content should be shown on the landing page instead of having Marketo needing to do it on the fly.
Edward Unthank | Founder, Etumos
When you pass the segment in the query string, the lead doesn't have to be in the segment in the db, so there's no delay.
To demonstrate the difference between what you're talking about (persistent segmentations, which take up to a day to re/process) and what I'm talking about (runtime segmentations, which use LP segmented elements but do not depend on the back end being updated) click the following links:
You'll see you get segmented data, although you're in fact an anonymous lead and thus obviously not "in" a segment yet.
COOL! So this is existing code written within Marketo to detect segments? The segmentation is usually just a post to the page upon navigation? And the one-off override would be passing the parameter as a querystring?
How is casing/special characters handled?
Yes! Think it's case-insensitive for both segmentation and segment (tho' maybe better to play it safe for forward compatibility). URL-encoding other stuff should work, but I play it safe and avoid spaces and such when using this feature.
Also, how does the form-submitted override of segmentation interact with the normal UI-calculations of segmentation? I imagine the recalculation in Marketo UI is based on the trigger-equivalents for the smart lists for the segmentation? Aka, data value changes for the field "Industry" would trigger recalculation and therefore could override the form-submitted override of "Vertical = Marketing?"
The runtime segment (or "soft segment," haven't figured out my buzzword yet!) value passed via query param doesn't need to end up in the form at all, if you don't want it to.
If you do map it to a hidden field on the form, it can update the field Vertical that's the only variable in the Smart List for the segmentation Vertical, so on the auto-recalc of the segmentation, the lead will be moved into the corresponding segment permanently.
Smart Lists for segments frequently use more complex criteria, like matching against a list(s) of values and/or behavioral data, but you can add an additional condition to ...or LeadDefinedSegment=Pharmacology... to make sure the lead's "soft segment" choice results in a "hard segment" as well.
I just came across this as we're in a situation where we need to create multiple language-based landing pages (where the majority of traffic will be unknown to Marketo - primarily driven from paid social). It's amazing how simple this is to do, yet it's not formally documented anywhere. Thanks for uncovering this, Sandy!