Home >
The Newbie Zone >
How to Fix Up Ripped Landers (34)
06-07-2016 04:35 AM
#1
vortex (Senior Moderator)
How to Fix Up Ripped Landers

A member has responded to one of my posts with the question: "You mentioned [having to fix] 'errors' in the landing page when ripping it. Are you able to explain what errors these are?"
So I'm creating this post to answer that question.
Let me start by saying that I suck at coding. I can count on one hand the number of landers I ever made from scratch.
I would enlist help from mastermind buddies, and coding services (bannerslanders.com, fiverr, etc.) which could get expensive.
And anyways - why would you pay for custom landers before you even have a profitable campaign? Ripped landers are often enough to unveil the good offers, which is why I almost always do my initial testing using ripped landers, gotten mostly from spy tools like Adplexity.
The problem with ripping landers, is that some of the coding would get screwed up while it's being ripped - some code could go missing where it's needed for the lander to work properly, and on the other hand you'll find characters appear in places they have no business being at.
Below are some of the common things that need to be fixed for a ripped lander to display and work properly. Disclaimer: Since I'm not a coder my terminology may not be 100% accurate, but my code snippet examples should be accurate because they are actual examples!
1)Add Missing getURLParameter Function
Sometimes you'll see places where the lander wants to call out the visitor's information - things such as phone brand and model, carrier, browser, isp, city, country. These will often appear in one of these formats:
Code:
<script>alert("You've been selected as today's lucky user from "+ getURLParameter('city')+"!");</script>
Code:
<script>document.write(getURLParameter('isp'))</script>
...but can also appear without the "getURLParameter" function call:
Code:
<script>alert("You've been selected as today's lucky user from "+city+"!");</script>
BTW - if you're not familiar on how to display tracking parameters on landers, please see:
http://stmforum.com/forum/showthread...ing-Parameters
What sometimes will happen is that the getURLParameter function would go missing when the lander is ripped - in which case all you need to do is paste it back - somewhere in the header section would be fine:
Code:
<script>
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] || ''
);
}
</script>
2)Remove Dates and Times From the Past
Dates and times are used very often on landers. The code would automatically display either the current date/time, or an offset thereof. Sometimes, the actual dates/times that were displayed on the lander at the time it was ripped, will need to be deleted by you - otherwise when you run the lander you'll see 2 dates/times displayed one after the other - the old and the current.
Example:
Code:
<script language="Javascript">
// Array of day names
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var now = new Date();
document.write(dayNames[now.getDay()]);
</script>Friday,
In this case, the statement "document.write(dayNames[now.getDay()]);" will automatically post the current day of the week, so you'll need to delete the "Friday" which is old data. Be careful though and leave that comma after it alone!
Another example:
Code:
<script>
var mydate=new Date()
mydate.setDate(mydate.getDate()-1);
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
document.write(""+montharray[month]+" "+daym+"")
</script>June 04 12:01 am
In this case, the "document.write(""+montharray[month]+" "+daym+"")" will output the current month and day, so you'll need to delete the old data "June 04", while LEAVING " 12:01 am" in there because this is the part that won't get replaced.
3)Replace Redirect Links
This is probably the most important fix of all.

You want to redirect visitors to your tracking links, so you'll need to replace the old ones with yours! Below are some of the types of redirect links you may encounter.
Tracking link:
You'll need to replace all outgoing tracker links with your tracking click url. If you're using
Voluum, you can get this click url by going to the "Tracking URLs" tab and copying the "Click URL":
(The "Multi-offer click URL" is for when you want to put multiple outgoing links on your lander that lead to different offers. For example if you're running sweeps, you could offer several sweepstakes prizes for visitors to choose from - e.g. iphone, samsung phone, ipad - and redirect them to corresponding offers depending on their choice. To do that, simply append "/1", "/2", "/3" etc. - however many offers you have - to the original click URL, then when creating the
Voluum campaign, make sure you add the same number of offers and in the correct order.
NOTE: This is NOT the same as split-testing different offers by rotating them equally!)
This is an example of what an outgoing tracker link looks like on your lander:
Code:
<a href="http://blah.tracker.com/click">CLICK HERE NOW</a>
Backbutton link:
The backbutton redirect code will redirect the visitor to an url of your choosing when they click "back" from your lander. So - replace this url with whatever you like: your tracking click url, another campaign url leading to another lander/offer, whatever you like.
The code below is only one specific example - there are lots of different backbutton codes, but most are characterized by the "history.pushState" and "location.replace". Note: This is just an observation made by a non-coder, so if any of you drive-by-geeks could explain this better please do! (I use the word "geek" with only utmost respect and admiration....)
Code:
<script type="text/javascript">
! function () {
var t;
try {
for (t = 0; 10 > t; ++t) history.pushState({}, "", "#");
onpopstate = function (t) {
t.state && location.replace("http://www.wherever-the-heck-you-want-to-redirect-to-when-they-click-back.html")
}
} catch (o) {}
}();
</script>
Device detection link:
This snippet is a popular one for mobile landers. What it does, is it checks to see whether the visitor is browsing from desktop or a mobile device. If the visitor is from desktop, they will be redirected to the url specified in the code:
Code:
<script type = "text/javascript">
if(screen.width >= 1000) {
if(typeof window.orientation !== 'undefined'){ var ortvalue = "defined"; }
if(ortvalue != "defined") {
document.location.replace("http://www.safeurl.com");
}
}
</script>
4)Download Files to Host Locally and Change Paths
Sometimes you'll see a lander reference a file that's hosted on a previous owner's server. This can be a jquery file, image file, mp3 file, etc. Instead of continuing to call these files from that person's server you should download them and upload to your own hosting so that you can be sure they won't disappear when you try to load them tomorrow.
Example:
Code:
<source src="http://www.guy-you-ripped-from.com/sound.mp3" type="audio/mpeg">
Browse to the sound file, download it, upload it to your server, and change the path. Say you uploaded the file to the same directory as your lander file, you'd then change the code to:
Code:
<source src="sound.mp3" type="audio/mpeg">
Often, by the time you go to download the file, it's no longer there. In that case you'll just need to find a suitable replacement on your own. If the file is a jquery file, you can go here:
https://code.jquery.com/jquery/
There are different versions available, and sometimes you can tell which version the lander was using based on the file name. Just copy the jquery code into a text file, rename it properly according to the filename specified on the lander, upload it to your server, and reference it there.
NOTE: Even if the jquery file is already present in the files you ripped, it would still be a good idea to replace it with a fresh copy you download from the official site above, because some people like to hide sneaky redirect code in jquery files.
NOTE 2: Please see further clarification regarding jquery files here:
https://stmforum.com/forum/showthrea...l=1#post292107
NOTE 3: Please see mypayne's suggestion to use google-hosted files to decrease load time:
https://stmforum.com/forum/showthrea...l=1#post298453
5)Check for Sneaky Redirects
Sound advice from Caurmen on this topic:
If you watch the web console for it calling out to ANY external service, and it doesn't, and then check if it's dropping any cookies, and it's not, you should be OK.
But for just checking whether it's calling out, developer tools > network tab.
To check whether or not it’s dropping cookies:
-On Chrome: chrome://settings/
-And check for your domain.
-Check before you first visit the page on your domain, and then after.
Or use something like
http://www.cookie-checker.com/
Also please see these threads/posts/links for other valuable contributions/suggestions:
https://stmforum.com/forum/showthrea...l=1#post334105
https://stmforum.com/forum/showthrea...eaky-redirects
https://stmforum.com/forum/showthrea...l=1#post292411
https://mobile.adplexity.com/tutorial (the section starting with "3) Inspect JS code")
This short list is just a start. I'll amend this post as I rip and mod more landers. And of course, please feel free to post more below and I'll paste them in here!
Thanks in advance!
Amy
06-07-2016 06:32 AM
#2
stitch (Member)
If ripping a page (esp by saving from Chrome) you're not guaranteed to get images linked in CSS (i.e a div background image).
Open up Chrome dev tools console and refresh the saved page, this is what you're looking for:

You need to download those manually from the source website, and change the image path in the CSS accordingly.
Half the time you'll find someone has ripped it off someone else and didn't bother to check either so they're not there - so you may have to come up with images yourself (or delete them if everything looks fine)
06-07-2016 05:12 PM
#3
jurtzi (Member)
Useful post! Thanks Amy 
Just one thing about the getURLParameter() function, it is more safe use decodeURIComponent instead of decodeURI, because the first one decodes special characters just in case the token value sent is in the encoded version.
Example URL that uses the next special characters: !@#$%^&*()_-+=;:'"?.,<>
(The next URL has the special characters encoded)
http://xxxxxx.com/test.html?model=iPhone 6!%40%23%24%25^%26*()_-%2B%3D%3B%3A'"%3F.%2C<>
decodeURI will return: iPhone 6!%40%23%24%^%26*()_-%2B%3D%3B%3A'"%3F.%2C<>
and
decodeURIComponent will return: iPhone 6!@#$%^&*()_-+=;:'"?.,<>
So, in order to show the special characters correctly, the javascript code should be:
Code:
<script>
function getURLParameter(name) {
return decodeURIComponent(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] || ''
);
}
</script>
I hope this helps showing the correct parameter values if they are encoded
06-08-2016 05:14 AM
#4
hopsinson (Member)
Thanks Amy
I'm currently using HTT Track to rip landers (My laptop runs on Windows) what do you use? Any other recommendations?
06-08-2016 07:00 PM
#5
guille (Member)
Very helpful.
06-11-2016 06:34 AM
#6
vortex (Senior Moderator)

Originally Posted by
hopsinson
Thanks Amy
I'm currently using HTT Track to rip landers (My laptop runs on Windows) what do you use? Any other recommendations?
I'm actually not tech-saavy - you'll laugh at my crude ripping method: I just go to the browser's "Save Page" and download that way.
Since tools like Adxposed and Adplexity came out, I've grown to rely on them. Plus I'd outsource lander creation when I come up with original ideas. (Or ask partners / mastermind buddies to help.)
If you want more ways to rip landers, these threads may interest you.
http://stmforum.com/forum/showthread...t-a-whole-page
http://stmforum.com/forum/showthread...-Swipe-Landers
Good luck!
Amy
06-30-2016 06:36 AM
#7
ametzgus (Member)
I have a lander that does not have the back button redirect, is there anyway you can share the javascript thats required? Please.
07-02-2016 03:35 AM
#8
vortex (Senior Moderator)

Originally Posted by
ametzgus
I have a lander that does not have the back button redirect, is there anyway you can share the javascript thats required? Please.
I'm really not good at coding - but try putting this at the bottom of your lander (before the </html> would be fine):
<script>
history.replaceState(null, document.title, location.pathname+"#/!");
history.pushState(null, document.title, location.pathname);
window.addEventListener("popstate", function() {
if(location.hash === "#/!") {
history.replaceState(null, document.title, location.pathname);
setTimeout(function(){
location.replace("REPLACE-WITH-URL-YOU-WANT-TO-REDIRECT-TO");
},0);
}
}, false);
</script>
There's also the backfix.min.js script - just google and you'll find it.
Alternatively, but rip a few landers and you'll find it. Backbutton redirect code has become almost a standard now - it's on almost every lander.
Amy
07-05-2016 12:09 AM
#9
ametzgus (Member)
The latest lander I ripped had the following code in it and when I downloaded it, it seemed to be missing a file:
<script type="text/javascript">
var pf = navigator.platform;
if(pf.indexOf("Linux") == -1 && pf.indexOf("Android") == -1){
document.location.href = 'DUB_1.html'; }
</script>
I get an error message when I try to view it live in Dreamweaver: "File DUB_1.html" unable to be located. I removed the script and am able to view the basic lander, however, the original popup notification is not there and I'm not sure if it screws up with any other parts of the code, like if there's a back button redirect or any other redirect.
Does anyone know what that script is? And if so, how to fix with up without removing it?
07-05-2016 07:46 PM
#10
vortex (Senior Moderator)

Originally Posted by
ametzgus
The latest lander I ripped had the following code in it and when I downloaded it, it seemed to be missing a file:
<script type="text/javascript">
var pf = navigator.platform;
if(pf.indexOf("Linux") == -1 && pf.indexOf("Android") == -1){
document.location.href = 'DUB_1.html'; }
</script>
I get an error message when I try to view it live in Dreamweaver: "File DUB_1.html" unable to be located. I removed the script and am able to view the basic lander, however, the original popup notification is not there and I'm not sure if it screws up with any other parts of the code, like if there's a back button redirect or any other redirect.
Does anyone know what that script is? And if so, how to fix with up without removing it?
When you're ripping landers, you'll sometimes end up with missing files. Not being good at coding, when I was flying solo before, I would just look for another lander to rip (that looked similar). That would be faster than trying to figure out how to make the original lander work.
Sorry if it's not the most informative reply!
Amy
07-05-2016 09:37 PM
#11
stitch (Member)

Originally Posted by
ametzgus
The latest lander I ripped had the following code in it and when I downloaded it, it seemed to be missing a file:
<script type="text/javascript">
var pf = navigator.platform;
if(pf.indexOf("Linux") == -1 && pf.indexOf("Android") == -1){
document.location.href = 'DUB_1.html'; }
</script>
I get an error message when I try to view it live in Dreamweaver: "File DUB_1.html" unable to be located. I removed the script and am able to view the basic lander, however, the original popup notification is not there and I'm not sure if it screws up with any other parts of the code, like if there's a back button redirect or any other redirect.
Does anyone know what that script is? And if so, how to fix with up without removing it?
That's a Javascript mobile OS check+cloak, sending the user to a safe page (DUB_1.html) if it fails - i.e page is being viewed on a Windows/Mac OSX computer.
Remove the code entirely or replace DUB_1.html with your own safe page, and off ya go.
07-05-2016 11:24 PM
#12
ametzgus (Member)

Originally Posted by
stitch
That's a Javascript mobile OS check+cloak, sending the user to a safe page (DUB_1.html) if it fails - i.e page is being viewed on a Windows/Mac OSX computer.
Remove the code entirely or replace DUB_1.html with your own safe page, and off ya go.
Sweet. Thanks, might be useful in the future. This is definitely a mobile preferred lander.
08-20-2016 04:03 PM
#13
vincent9 (Member)
great post !!
i saw you link this in another tread and wanted to put it here again if anyone needed it.
a list of snippets that you can use, all in one place.
https://ppcmode.com/landing-page-code/
08-21-2016 01:48 AM
#14
vortex (Senior Moderator)

Originally Posted by
vincent9
great post !!
i saw you link this in another tread and wanted to put it here again if anyone needed it.
a list of snippets that you can use, all in one place.
https://ppcmode.com/landing-page-code/
Great share thanks!
Here's another thread that has useful lander code snippets:
http://stmforum.com/forum/showthread...ts-for-landers
Amy
10-05-2016 09:54 PM
#15
csstaq (AMC Alumnus)
How I missed this thread, I don't know.
Many thanks Amy, you're great!
10-27-2016 12:02 AM
#16
success1 (Member)
Hi Amy, Great post here, especially for a non-technical newbie like me. I am confused about finding the jquery files at this site https://code.jquery.com/jquery/ So are you saying any file with a .js for example page.js should be removed and replaced with a downloaded version from https://code.jquery.com/jquery/? I don't see a search function at https://code.jquery.com/jquery/. All I see are various versions such as Jquery Core and Jquery Migrate.
Often, by the time you go to download the file, it's no longer there. In that case you'll just need to find a suitable replacement on your own. If the file is a jquery file, you can go here:
https://code.jquery.com/jquery/
There are different versions available, and sometimes you can tell which version the lander was using based on the file name. Just copy the jquery code into a text file, rename it properly according to the filename specified on the lander, upload it to your server, and reference it there.
NOTE: Even if the jquery file is already present in the files you ripped, it would still be a good idea to replace it with a fresh copy you download from the official site above, because some people like to hide sneaky redirect code in jquery files.
10-27-2016 09:51 PM
#17
vortex (Senior Moderator)

Originally Posted by
success1
Sorry for the confusion! I wasn't referring to all files that had the .js extension - but only the ones with code from the jquery library.
Those will typically be named something like jquery.js or jquery.min.js, and sometimes you'll see the version name in the file name as well. When you open the file you'll often see version information at the top like "/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */".
Taking that as an example, you would then go to
https://code.jquery.com/jquery/, click on the "minified" link for "jQuery Core 3.1.1", and copy and paste all the code into the jquery file. This will ensure that the code is clean - some people do hide sneaky redirects in there.
To identify sneaky redirects in custom .js files, would be another beast altogether, and would require that you know javascript/jquery.
Hope that helps!
Amy
10-27-2016 10:26 PM
#18
success1 (Member)
thanks Amy. Appreciate the clarification! my ripping of landers has improved dramatically since reading this post.
10-29-2016 10:33 PM
#19
success1 (Member)
So I am trying to learn coding while ripping landers at the same time for the sake of quick go to market with campaigns and to expand my skill set and less dependence on developers. So far, Amy's guide has been really helpful. I am finding a few things along the way to be confusing.
I am finding some lps with two or more html files (I don't know which html file to make the index.html?)
I am finding that some images are embedded in long code for example src= data:image/png;base64 blah, blah, blah (In Amy's guide it says that you should download files that hosted on the original owner's server. From one I can see, these files aren't being hosted on their server. But I just want to make sure that I my assumption is correct? If the file is indeed embedded in the code, is it OK to move forward? My fear is maybe this is a trap.)
I am also unsure what’s the best practice for back button redirects (Do most people redirect to another offer or the click url? I have had some situations where my CTR is going through the roof and I believe it's because I am redirecting back to my click url. Is my assumption correct?)
I am having a hard time with lps that have one device name for example Samsung Galaxy (I change the name to mobile phone so that I can have a broad appeal when I first start testing, however, in some cases my changes don't stick. I need to learn more about how to display tracking parameters, which I see Amy has provided a link to. In some cases, it seems like the previous owner has just put Samsung Galaxy or whatever model and it's not dynamic based on coding?)
I appreciate any help that I can get here. Thank you!
10-31-2016 09:23 AM
#20
vortex (Senior Moderator)
As I've mentioned before, I suck bad at coding, and therefore probably wouldn't be the most qualified person to be answering your questions.
What I'll do is try my best to take a stab at them, and then maybe you could start a new thread to ask some of them again, to get feedback from all the talented coders on this forum.

Originally Posted by
success1
I am finding some lps with two or more html files (I don't know which html file to make the index.html?)
When you view the screenshot of the lander (from adplexity for example if that's where you ripped it from), make a note of any portion of ad text (a phrase or sentence) you see displayed on the lander, and do a search for it in both files - the one you find it in should be the "real" index page.
Or, just do trial and error - pick one file randomly and rename it to index.html, browse to the file folder, and if you don't see the lander appear on the screen, change the name back and rename the other file to index.html.
One thing to note here is that some landers will redirect traffic depending on the device you're using. So if it's a mobile lander meant to receive mobile traffic only, you may not be able to view it from your desktop. I use a browser plugin called "Pushbullet" to send urls from my desktop to my phone (there's a mobile app for that too) to view the lander there.
I am finding that some images are embedded in long code for example src= data:image/png;base64 blah, blah, blah (In Amy's guide it says that you should download files that hosted on the original owner's server. From one I can see, these files aren't being hosted on their server. But I just want to make sure that I my assumption is correct? If the file is indeed embedded in the code, is it OK to move forward? My fear is maybe this is a trap.)
In a vast majority of cases, these long strings of code are just a way to display images. However, I HAVE seen cases where redirection was hidden in base64 code.
To check for this, you can try to use a base 64 decoder to see if there's a hidden url in the code - google "base64 decoder" and you'll find lots of online ones. Copy and paste that string of code into a decoder. This will often not work though, for some reason or other.
Another way to check for sneaky redirects would be to install a browser extension called "Live HTTP Header", open the extension, and then browse to your lander again and again, and go through the urls detected by the extension to see if there's any url you don't recognize. The "again and again" is because many sneaky redirects will only be triggered a percentage of the time - for example only 20% of the traffic will be redirected. This is to minimize risks of the sneaky code being discovered.
I am also unsure what’s the best practice for back button redirects (Do most people redirect to another offer or the click url? I have had some situations where my CTR is going through the roof and I believe it's because I am redirecting back to my click url. Is my assumption correct?)
May be. Would be simple to find out: Rotate both versions of the lander, one with backbutton and the other without, and compare stats.
In general though - yes, the backbutton script will usually give the CTR a significant boost.
I am having a hard time with lps that have one device name for example Samsung Galaxy (I change the name to mobile phone so that I can have a broad appeal when I first start testing, however, in some cases my changes don't stick. I need to learn more about how to display tracking parameters, which I see Amy has provided a link to. In some cases, it seems like the previous owner has just put Samsung Galaxy or whatever model and it's not dynamic based on coding?)
Yeah I've seen that too on some landers. Makes me wonder whether it's an "error" that resulted from the ripping, or if the original owner was only targeting Samsung Galaxy's.
At any rate, it would be simple to implement a bit of dynamic code to call out the brand/model/etc. Do check out that link - caurmen has laid out how to do that in detail.
Hope that helps!
Amy
10-31-2016 11:20 AM
#21
caurmen (Administrator)
A lot of landers will replace model names on the server using PHP or similar. You won't get that code when you download the lander, so it'll look like it was just coded in HTML. That's probably why you're seeing model names in plain text with no Javascript associated.
10-31-2016 05:21 PM
#22
success1 (Member)
Thank you for the feedback. This is super helpful!
12-22-2016 04:08 PM
#23
banana123 (Member)

Originally Posted by
vortex
Sorry for the confusion! I wasn't referring to all files that had the .js extension - but only the ones with code from the jquery library.
Those will typically be named something like jquery.js or jquery.min.js, and sometimes you'll see the version name in the file name as well. When you open the file you'll often see version information at the top like "/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */".
Taking that as an example, you would then go to
https://code.jquery.com/jquery/, click on the "minified" link for "jQuery Core 3.1.1", and copy and paste all the code into the jquery file. This will ensure that the code is clean - some people do hide sneaky redirects in there.
To identify sneaky redirects in custom .js files, would be another beast altogether, and would require that you know javascript/jquery.
Hope that helps!
Amy
When I open the jquery.min file from my ripped lander, it says, "/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc." at the top.
So I went to
https://code.jquery.com/jquery/ and copy/pasted the code from jQuery Core 2.1.4 - minified into that file. But when I did this, it broke my lander.
The code from jquery.com is very, very small compared to the code from my ripped lander.
It's this:
<script
src="https://code.jquery.com/jquery-2.1.4.min.js"
integrity="sha256-8WqyJLuWKRBVhxXIL1jBDD7SDxU936oZkCnxQbWwJVw="
crossorigin="anonymous"></script>
The original is dozens of lines that made this post look terrible. But I can post it if it would help.
Thanks!
12-22-2016 04:16 PM
#24
Mr Payne (Member)

Originally Posted by
banana123
When I open the jquery.min file from my ripped lander, it says, "/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc." at the top.
So I went to
https://code.jquery.com/jquery/ and copy/pasted the code from jQuery Core 2.1.4 - minified into that file. But when I did this, it broke my lander.
The code from jquery.com is very, very small compared to the code from my ripped lander.
It's this:
<script
src="https://code.jquery.com/jquery-2.1.4.min.js"
integrity="sha256-8WqyJLuWKRBVhxXIL1jBDD7SDxU936oZkCnxQbWwJVw="
crossorigin="anonymous"></script>
The original is dozens of lines that made this post look terrible. But I can post it if it would help.
Thanks!
Just use the Google Hosted one as many phones already have this cached and they won't have to reload the file, so your lander loads faster:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
You can also find other jquery versions they support here:
https://developers.google.com/speed/libraries/
Andrew
12-22-2016 06:43 PM
#25
vortex (Senior Moderator)

Originally Posted by
banana123
When I open the jquery.min file from my ripped lander, it says, "/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc." at the top.
So I went to
https://code.jquery.com/jquery/ and copy/pasted the code from jQuery Core 2.1.4 - minified into that file. But when I did this, it broke my lander.
The original is dozens of lines that made this post look terrible. But I can post it if it would help.
Thanks!
Sorry - I have no idea why that is. I only know very minimal coding - just enough to fix up most ripped landers.
Perhaps someone else could help? Thanks in advance!
Just use the Google Hosted one as many phones already have this cached and they won't have to reload the file, so your lander loads faster
Great tip Andrew! Will update the original post to reference your post. Thanks!
Amy
12-23-2016 09:45 AM
#26
caurmen (Administrator)
If the lander breaks when you replace the jquery, and you've checked the version ( good call ), and mrpayne's suggestion also doesn't work, chances are the original coder changed the jquery.
At that point, I'd guess that the reason it was changed was to do something malicious if the lander was ripped. It's one of the more smart places to hide malicious code.
At that point you'd have to debug the lander line by line to get it working, I'm afraid.
12-23-2016 10:50 AM
#27
ysekse (Member)

Originally Posted by
banana123
When I open the jquery.min file from my ripped lander, it says, "/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc." at the top.
So I went to
https://code.jquery.com/jquery/ and copy/pasted the code from jQuery Core 2.1.4 - minified into that file. But when I did this, it broke my lander.
The code from jquery.com is very, very small compared to the code from my ripped lander.
It's this:
<script
src="https://code.jquery.com/jquery-2.1.4.min.js"
integrity="sha256-8WqyJLuWKRBVhxXIL1jBDD7SDxU936oZkCnxQbWwJVw="
crossorigin="anonymous"></script>
The original is dozens of lines that made this post look terrible. But I can post it if it would help.
Thanks!
1. Go to
https://www.diffchecker.com/
2. Paste in the original jQuery on one side
3. Paste in the CDN jQuery on the other
see the differences, likely the differences is just the basic functionality code mixed with some malicious code. Then just take the code you know will not do any sneaky redirects and your lander will work
12-23-2016 11:46 AM
#28
banana123 (Member)
Many thanks to everyone who replied!
Just use the Google Hosted one as many phones already have this cached and they won't have to reload the file, so your lander loads faster:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
This works, Thanks Andrew!
Is it normal that version 3.1.1 works when my lander was using 2.1.4? Would it be more likely that this would only work with landers using 3.x.x versions, and we'd need to use the 2.x snippet with landers that are using 2.x.x versions?
Also, should we be using these Google hosted ones on all our landers; is there any advantage to using the file that comes with a ripped lander, or any downside to using the Google hosted ones?
12-23-2016 03:39 PM
#29
caurmen (Administrator)
For the reasons mentioned above. I would STRONGLY discourage using the version that comes with the lander. Use the Google hosted ones. They're probably going to be faster too.
12-24-2016 02:03 AM
#30
erikgyepes (Moderator)
Poweruser tip: if you use TextExpander or similar app for text expansion - create a shortcut that expands the Google hosted CDN script, so you don't have to copy and paste it over and over with every lander.
When I type <jquerycdn it got automatically replaced by <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
12-10-2020 06:17 PM
#31
mat4499 (Member)
I think I might be missing something fundamental. So i have a single click URL, but I'm split testing 3 landers across 3 offers for example, how does my click URL know where to direct traffic on each individual lander offer combo?
Or do i use the multi offer click URL for that?
12-10-2020 06:52 PM
#32
platinum (Veteran Member)

Originally Posted by
mat4499
I think I might be missing something fundamental. So i have a single click URL, but I'm split testing 3 landers across 3 offers for example, how does my click URL know where to direct traffic on each individual lander offer combo?
Or do i use the multi offer click URL for that?
Not sure what tracker you are using, however the logic behind should be pretty much the same among different trackers (except a few ones).
If you're split-testing 3 landers and 3 offers where the landers point to a single offer, then you use the single click URL.
If you're split-testing 3 landers and one or more of these landers points to more than one offer, then you should use the multi-offer click url on the landers that point to more than one offer.
Regarding about how does it know to which offer to point, the trackers handle that by themselves.
Each campaign has a different campaign link that is stored on the tracker's database, then for each visit received on a campaign link, the tracker generates both a unique click id (which is used for conversion tracking), also rotates the landers and offers according to the rotation weights specified inside each campaign.
To put it in simple words, consider this:
Campaign ABC has 2 landers and 3 offers (each of them with equally distributed traffic allocation)
We send 100 visits to this campaign and based on our rotation settings the tracker knows that it has to send 50 visits to each lander and ~33 visits to each offer.
12-10-2020 08:30 PM
#33
mat4499 (Member)
Thanks dude, it weirds me out because the click URL's generated on my different campaigns appear identical, but it must just be my inexperience shining through. If there's one thing lander fixing taught me, it's that I don't need to understand wtf I'm doing for it to work.
12-10-2020 08:58 PM
#34
vortex (Senior Moderator)

Originally Posted by
mat4499
Thanks dude, it weirds me out because the click URL's generated on my different campaigns appear identical, but it must just be my inexperience shining through. If there's one thing lander fixing taught me, it's that I don't need to understand wtf I'm doing for it to work.
You're right to a certain extent - in saying that you don't need to completely understand every little thing you're doing, for things to work.
Nevertheless - if you're asking the question, it means you're curious. Having too many unanswered questions isn't a good thing. That feeling of uncertainty can build up to the point where your confidence is affected in everything you do. So...please don't stop asking questions!

@
platinum has answered your question very thoroughly, but I'll offer my explanation as well - sometimes approaching the same topic from different angles can help with better understanding.
So basically this is what happens:
1)You have your landers all fixed up and ready, with the outgoing links replaced with the click url.
2)You add your offers and landers to the tracker, then you create a campaign in the tracker and specify your 3 offers and 3 landers, let's say with equal rotation weight. Let's name them Offer1/2/3 and Lander1/2/3 for referring to later.
3)You take that campaign link the tracker spits out, and plug it into the traffic source. Every time the ad is shown, that campaign link is triggered.
Here's what happens:
1st time the campaign link is triggered, it will direct the visitor to Lander1 AND replaces the click URLs on Lander1 with the Offer1 link.
2nd time: Visitor will be directed to Lander1, click URLs will be replaced with Offer2 link.
3rd time: Visitor directed to Lander1, click URLs replaced with Offer3.
4th time: Visitor directed to Lander2, click URLs replaced with Offer1.
5th time: Visitor directed to Lander2, click URLs replaced with Offer2.
6th time: Visitor directed to Lander2, click URLs replaced with Offer3.
7th time: Visitor directed to Lander3, click URLs replaced with Offer1.
8th time: Visitor directed to Lander3, click URLs replaced with Offer2.
9th time: Visitor directed to Lander3, click URLs replaced with Offer3.
In actuality, the above order will be random. But overall, each of the 9 offer+lander combinations will get equal chances to appear.
To see this in action: Just set up a similar campaign on your tracker, and load the tracker link again and again to see which lander you get, and put your cursor on the outgoing link to see which offer you get.
The multi-offer click feature is used for something else - it's for when you have multiple outgoing links on a lander going out to DIFFERENT offers SIMULTANEOUSLY.
Example: On a sweeps lander, you want to present several different prizes to the visitor and let them pick the prize they want.
Prize 1 = iphone
Prize 2 = android phone
Prize 3 = playstation
And depending on which prize they want, they'll be taken to an offer corresponding to that prize.
In this case you'd need to put different versions of the click url on the lander, usually something like
https://clickurl.com/1 https://clickurl.com/2 https://clickurl.com/3. Then, when you're creating the campaign in the tracker, you'll need to specify the 3 offers (or however many offers you've put on the lander).
Hope that helps!
Amy
Home >
The Newbie Zone >