Home > General > Affiliate Marketing Forum

$340,000 In Last 8 Months From Free Traffic (47)


07-21-2016 03:57 PM #1 francis (Member)
$340,000 In Last 8 Months From Free Traffic

Hey All,

It's my 4 year anniversary today of my very first AM Success..

Four years ago Maynzie gave me 10 of Jordan's and Lorenzos landers, and a offer. As soon as I launched I was at 100% ROI, about 1k profit per day and the offer(s) did about 30k in the first month.

This was the Wild West Days, CPV Labs, Prosper, and the Pin Submit Glory Hole.

Every now and then I like to post on here and give back to the community that changed my life forever.

I'm going to give the forum one of the sexiest, most brilliant systems that this place has seen all year. Easily.

Last year my programmer/developer hit me up and said he had something cool to show me.

He sent me a screenshot and when I saw it it was like seeing the Mona Lisa for the first time.

He had figured out how to turn 500k mobile pops a day into 900k mobile pops a day. Free traffic, and it grew every day.

Free traffic is everyone's dream so I got so excited I got goosebumps, and then he made some improvements to it and the thing blew up.

Our tracker lit up green like a Christmas tree.

We kept working on it, and then it started optimizing on auto-pilot, making more cash every day, and I literally hit the roof.

Here is what he had invented

-Free traffic generator
-Auto campaign generation (hundreds of campaigns generated per day on auto-pilot per day)
-Automatic lander and offer split testing
-Automatic RON zone optimization for each auto generated campaign

This is a screenshot of the first few days, after this we made a self hosted solution and dashboard and scaled it.



It was creating 170 - 200 campaigns on auto pilot, all free traffic and we were getting conversions on campaigns 100, 150.

The way it worked was pure genius. Each campaign got a little less traffic then the first, you can see the cascade in the screenshot.

No one in the AM world knew about this, no one had even thought of doing it, and it was SO SIMPLE.

We are leaps and bounds from where we were when we launched it, but I am feeling generous so I am going to give out the instructions, scripts, files and step-by-step guide to make this work in the next few days.

It's going to take 4-6 posts to show you how to do it, but everyone running pop can implement this and make money right away with it.

I'm slammed with running 3 companies at once right now, so I'll drip out the content over a few days so it doesn't over whelm you guys. Here is a blurred our preview of the entire system, it's really simple once u do it the first time don't worry. And yes it works for everyone.



Why am I giving this away? To give back to the place that changed my life and to thank Jordan and Lorenzo for the 3 day payouts when I was broke and needed to scale with no credit cards.

Check back for part 2.

Jordon


07-21-2016 04:42 PM #2 cocota (Member)

This sounds very interesting, looking forward to read more


07-21-2016 04:57 PM #3 xxf8xx (Member)

This looks amazing and is kind of similar to what I imagine setting up for myself and some point down the road. A system that is pretty much auto pilot with a little bit of my own intervention. Can't wait to hear more about this!


07-21-2016 05:59 PM #4 asknopt (Member)

Hi Francis,

I have the same vision as well, having a system to launch campaigns with minimal human interaction, algorithms to manage bidding and so forth.

Curious to see what you gonna provide as apparently people are saying you are a scammer in this post:

http://stmforum.com/forum/showthread...nt-to-help-you

Cheers


07-21-2016 06:00 PM #5 manu_adefy (Veteran Member)

There's a trend in each of your posts: every 6 months you name drop a few popular names, talk about making money in a different way, and say how you can teach it to someone else...


07-21-2016 06:17 PM #6 seofiate (Member)

Looks a bit like our backbutton loop We're using 4-5 sequences at the moment, its massive though....


07-21-2016 08:32 PM #7 digitalraves (Member)

Lets imagined this is sleek, so I subscribe . Now lets watch how you roll this out cause there are some noted traits here...... Thanks in advance if this is real.


07-21-2016 10:22 PM #8 bobliu (Member)

Happy 4 years francis! Time fly's right? Looking forward to seeing the next posts.


07-21-2016 10:57 PM #9 francis (Member)
Split Testing On Steroids - Our Method

Alright so I'll try to get all this content to you as fast as possible, but I will have to chunk it a little because of time constraints.

So Before I get into how we created the system I'll go over our split testing method to lay a foundation
for how this works. Below most forum members have been doing or probably have a better way to do this. This is what we use.

On pop, usually around the 1.5 - 2mill impressions/day mark you can split test really fast, only issue is it takes a ton of time and resources to make pages so we created a system to make it faster. 3 steps below

1) We create basic and robust lander template styles (3 question, single click through etc) , host it on a CDN.

2) Next we use a JS master file for each variation and use it to rotate CSS, turn on entry/exit alerts, pop unders and back button JS, lander copy, entry alert copy, exit alert copy, second chance alert copy.

3) Then we use PHP and populate the URL with the parameters, create a custom token in the tracker for it, and then we can
track the split tests by running reports in the tracker.

I'm sure many guys here split test this way on big volume traffic, its the most efficient way IMO. Below is a graphic I made if you have never done this.

Using this method you can split test thousands of variations of your page using one html lander, so it works really well for us.

Then my buddy showed me how to change the CSS, copy, etc based on a paramater after that. So {city}=San Diego Loads San Diego Theme CSS, {carrier}=verizon, and verizon logo, theme load. Possibilities are endless. I'm sure most forum members do this so I wont go into the tech part.

Graphic:


07-21-2016 11:26 PM #10 francis (Member)

So now you know how we used to split test. Next come the Traffic Recycling (Free Traffic) that essentially creates 10,000 split tests from 20 landers and 20 offers on a profit pool of RON traffic. Imagine 10,000 split tests running at once from a 2 hour setup.

Next, Anyone who runs pops knows that without a back button redirect you are leaving free money on the table.

Someone above said they were going 4 levels deep. My partner and I wanted to automate it.

So he created a simple script, a a custom token, so the back button became an infinite loop. We first tested this on adult
and it worked really well. My theory is because adult traffic visitors usually only use one had to touch phone. Other hand is busy doing stuff
and when they get a pop served they tap back, instead of using the home button and opening their browser tabs which takes much longer to get back to the video.

So using a custom token, and a back button redirect JS, we created an infinite loop. If they click the back button 1000 times we can show them 1000 different page variations until they convert. What's crazy, and I'll talk about this later is some users would convert after 120 back clicks.

The super sexy thing I'll show later is how we are able to track what site ID converted based on the level, lander, offer. The reason I fell in love with this is because we all know there are colors, fonts, and copy that are PROVEN to convert better. But we also all know that in our industry some of the biggest breakthroughs we make are when we test something we think wont work, and it ends up being a million dollar lander. So being able to do 10,000 - 20,000 split test at once was a dream come true.

Now when we first launched this we did a simple dirty test. We used 15 different landers, and for each lander we rotated 10 different offer lander styles.

We launched on a nice quality profit pool of 20-30 sites on a major pop source. Here is a few minutes after the launch, with this tracker you can only pull reports using 3 custom variables so it limited us so we would just export the data and use excel for the reporting.

5-10 mins after launch:



So if you look at landing page one, on level one, it had 3 conversions off the bat, and if we went a level deeper you would see the offer page variation, and then the zone the conversion came from.

So I was blown away because every day it was optimizing itself, we just load 30 landers, and 30-40 offer pages and let the thing run. Every day we are finding the more optimized combination of landers, offer pages and zones as the user clicks the back button.

Each level of click (eg 1,2...20) makes more every day and some levels like 15 sometimes do crazy profit we have no idea why.

I think what we did is designed a system that taps into human psychology. We have no idea why on level 2 a lander with a BBW chick, and then on 3 a lander with a asian gif, do so well.

It was like finding the perfect landing page and offer that triggered people to take action on every back button click.

Setup is next...


07-21-2016 11:36 PM #11 francis (Member)

Here is a different campaign on another network about 30 mins after launch. Now we have 12 levels created, pure automation and level 4 has made $15 for whatever reason while level 3 has zero conversions.



Are you starting to see the power?

We then connect one to every campaign, and the longer they run the more they make, its just a data grab. Next I'll go into site ID, Zone, or whatever you want to call it. As I mentioned we track that and optimize the levels based on that and another parameter.


07-21-2016 11:45 PM #12 francis (Member)

Now is where it gets sexy.

Once blast the campaigns with traffic, the more we send the more optimized it becomes. Its this insane optimization machine that you literally just load as many landers and offers as you can and it spits out more money.

Once we have a ton of data, we create a rule in the tracker and isolate a killer lander on one level and its best performing offer. What I still do not understand is that a lander on level 15 will do amazing and then suck on level 2. One will crush on level 4 and suck on level 8. It still boggles my mind, but it has to be the flow of each back button click and how it triggers the users brain.

Here is how we control each level with a rule.



Is this making sense or should I go slower?

I am going to go deeper into the JS and server setup soon so you'll want to make sure you understand where I am at.


07-21-2016 11:56 PM #13 francis (Member)

As you scale you'll find these honey hole levels. They just work amazing and you don't know why. Here is a 3 day screenshot of level ONE.



Then you find LEVEL 6 -> LANDER 4 - > OFFER 2 -> ZONE 43434 is crushing it on carrier traffic so you create redirect rules to take advantage of this.

Level one gets the most traffic obviously, each lower level sees a 5-7% drop off rate depending on the phone model and device and traffic source.

You can send all your camps to one setup, or break them up, we tried both but we found that our CDN was slowing us down. Yes there is a massive server load to this because your pages are literally loading at an exponential rate.

We researched about 2 dozen different CDN's and finally found one that did the trick and for the right price.

More setup coming shortly


07-22-2016 04:11 AM #14 xxf8xx (Member)

I will be implementing this as soon as possible. I've always knew I've under estimated the power of the back button and this proves it. I don't think I will automate the landers yet, like injecting auto translations and logos and stuff, but really want to focus on the back button. I guess direct linking the back button to the offer is probably the worst thing you can do if I had to guess.

Basically you can just make a custom token in Voluum called Back Depth or something and pass that along inside the back button script I imagine. Then you just rotate landers as usual and see which one does best at each depth level. Pretty incredible.

Can't wait to hear more on this.

Cheers,
Brad


07-22-2016 04:38 AM #15 inigomontoya (Member)

Amps?


07-22-2016 06:56 PM #16 francis (Member)

Cool so Now I will give you guys all the files, PDF instructions and stuff to make this work for you. If you're running pop you can set it up right away and make money with it.

This will be a very basic setup. It works with any tracker but I suggest a self hosted solution. I will do more advanced versions later in the thread and give you guys all the Javascript and directions you need to do this.

I'll break this up into parts because there is a lot to go over.

PART 1- Campaign URL's

1) Start with two campaigns in your tracker. We like to name them MAIN, and BACKEND. The main campaign is your normal campaign, and the backend campaign is where the infinite back button rotation comes into play. We can also use the system for pop unders after a 10 second meta refresh, but I'll go over that later (every 10 seconds, for as long as we want they get a new pop if they do nothing)

Campaign One you can use all the tracking tokens your source allows, for this example I will just use a site_ID

Campaign two needs three custom tokens added to it, you make a new traffic source for that campaign.

Campaign One URL: http://xxx.xxxtrk.com/7359c60xx34013d (MAIN)

Campaign Two URL: http://xxx.xxxtrk.com/7359c60xx34013d?step={step}&initialCamp={initialCa mp}&initialTarget={initialTarget} (BACKEND)

Here is what the traffic source will look like for the BACKEND




Part 2 - Landers

You also need these tracking tokens Lander URL's we are also using the model token too for callout in the page, you can add all your other ones. &srcTarget={var3}&srcCamp={campaign.id}

This will all make more sense when I give you the javascript.

1

http://xxxx.com/AD1/index.html?model={model}&srcTarget={var3}&srcCamp= {campaign.id}

2

http://xxxx.com/AD2/index.html?model={model}&srcTarget={var3}&srcCamp= {campaign.id}

3

http://xxxx.com/AD3/index.html?model={model}&srcTarget={var3}&srcCamp= {campaign.id}


07-22-2016 06:58 PM #17 francis (Member)

P.S - Thanks for everyone who hit me up on skype with the positive feedback. This is what I love to do and I'm happy to share it!


07-22-2016 07:15 PM #18 francis (Member)

Part 3 - Lander Setup and Master File JavaScript

Next you'll need to modify your landers, and use a master JS file to control the redirection and tracking. Again this is a very simplified version.

1) You will need to use a back button hijack script. There are many out there and when android and Apple OS's change some stop working. One is now being flagged by Risk IQ so be careful if you run that. Everyone on this forum has used one of these.

You can just host this JS file somewhere on your CDN. After we are done we will encrypt all the JS and this helps with multiple things I will explain later.

We will call it back.min.js

Here is one that I pulled up that works with most mobile browsers, but I am sure there is a better one out there or on this forum. The one we are currently using I do not know much about but its not as simple as thig. My partner does the backend stuff so I will see if I can get it explained later.

Code:
var bajb_backdetect={Version:'1.0.0',Description:'Back Button Detection',Browser:{IE:!!(window.attachEvent&&!window.opera),Safari:navigator.userAgent.indexOf('Apple')>-1,Opera:!!window.opera},FrameLoaded:0,FrameTry:0,FrameTimeout:null,OnBack:function(){alert('Back Button Clicked')},BAJBFrame:function(){var BAJBOnBack=document.getElementById('BAJBOnBack');if(bajb_backdetect.FrameLoaded>1){if(bajb_backdetect.FrameLoaded==2){bajb_backdetect.OnBack();history.back()}}bajb_backdetect.FrameLoaded++;if(bajb_backdetect.FrameLoaded==1){if(bajb_backdetect.Browser.IE){bajb_backdetect.SetupFrames()}else{bajb_backdetect.FrameTimeout=setTimeout("bajb_backdetect.SetupFrames();",700)}}},SetupFrames:function(){clearTimeout(bajb_backdetect.FrameTimeout);var BBiFrame=document.getElementById('BAJBOnBack');var checkVar=BBiFrame.src.substr(-11,11);if(bajb_backdetect.FrameLoaded==1&&checkVar!="HistoryLoad"){BBiFrame.src="blank.html?HistoryLoad"}else{if(bajb_backdetect.FrameTry<2&&checkVar!="HistoryLoad"){bajb_backdetect.FrameTry++;bajb_backdetect.FrameTimeout=setTimeout("bajb_backdetect.SetupFrames();",700)}}},SafariHash:'false',Safari:function(){if(bajb_backdetect.SafariHash=='false'){if(window.location.hash=='#b'){bajb_backdetect.SafariHash='true'}else{window.location.hash='#b'}setTimeout("bajb_backdetect.Safari();",100)}else if(bajb_backdetect.SafariHash=='true'){if(window.location.hash==''){bajb_backdetect.SafariHash='back';bajb_backdetect.OnBack();history.back()}else{setTimeout("bajb_backdetect.Safari();",100)}}},Initialise:function(){if(bajb_backdetect.Browser.Safari){setTimeout("bajb_backdetect.Safari();",600)}else{document.write('<iframe src="blank.html" style="display:none;" id="BAJBOnBack" onunload="alert(\'de\')" onload="bajb_backdetect.BAJBFrame();"></iframe>')}}};bajb_backdetect.Initialise();


07-22-2016 07:35 PM #19 francis (Member)

Part 3 Continued

So yes there are a thousand ways to do this but here is how we do it. We put the backfix, and all our enrty/exit scripts and stuff in the master file, and just reference that in the lander. Works better and then you can encrypt/compress everything.

So at the bottom of all your landers before closing body should look like this. The page.js is whatever the page needs if it's a 3 question survey or whatever.



Now we start building the master file, it will control all your landers, you can turn on entry alerts or turn them off on 100 landers at once. This is critical you have this power because the real money in this system is just pumping a ton of landers into it. More you put in the more money you make basically.

You start the master file with this javascript



Now let me explain it

line 5 - your tracker click URL

line 6 - link to your back redirect javascript

line 7 - this is your tracker cloack url (tracking redirect rules to cloak page)

line 8 - this is your mobile cloak url (all the mobile JS you use to cloak - we stack them all on) NOTE: I do not cloak anymore we are 100% whitehat

lines 7 and 8 are the same campaing in this case. It's just a global cloaking campaign we use on ALL pages. This will not work if you are using the master file to run campaigns in differnent GEO's if you are Geo cloaking. This will work if you are using the master file to run campaigns if you are OS cloaking, GEO cloaking and you are running like 7 android USA camps with one master file. So if you want, to keep this simple, just paste a campaign URL into the cloaking URL that goes to a safe page with no redirects.

I am going to show you how you can just put all your JS mobile cloaks into the master file in a bit.

My partner made this 100% automated because of the sheer number of landers. with 300 landers we just control everything from one file. Guy is brilliant.

Here is initial code

Code:
// SETUP //

    var config = {
    "globalSettings" : {
        "trackingURL" : "http://xxx.com/click",
        "backScript" : "http://xxx.co.back.min.js",
        "trackerloak" :"http://track.xxx.com/014e817e-46f4-9423-5110c6e5b56f",
        "mobileCloak" : "http://track.xxx.com/014e817e-46f4-9423-5110c6e5b56f"
    },


07-22-2016 11:10 PM #20 affpayinggao (Veteran Member)

Thanks for sharing this Jordon


07-23-2016 02:36 AM #21 francis (Member)

Part 4 - Adding your campaigns

The next part is simple, we can add as many campaigns as we want to one master file and send all of our traffic to one campaign recycling the back button traffic, or individually do them.

I suggest sending all your campaigns to one recycler because you get more data to one of them and make money faster.

This seems complicated but it's not, it's all copy paste from here.

We can control each campaign from the two clusters of code below.



You insert your Back Click campaign URL with no tokens on 14 and 23.

line 22 is just the code at the end of the tracking link for the back button campaign URL

Example ID: 714336a122-c577-4d9d-82f9-0ac26ebbf074

Line 13 is just the code from the end of the front end, or main campaign URL

Example ID: 7b4458f4341-72c2-4560-9d20-a7e61a6a16ab

Paste that in and then you can just duplicate those two clusters over and over as many times as you want.

See next screenshot (this is running the back traffic from a RON campaign and a Profit Pool to the same Recycle System)



Whats really nice is to be able to control the alerts, outclick alerts, vibration and everything from one place on hundreds of landers. One change and your profit can double in a few hours. We found some really weird anomalies playing with the true/false controls because hundreds of these pages are being fired every minute.

I'm going to get thai food then I'll post the code and the last piece of seperate JS to make the whole thing work so you guys can start getting more green out of your POP!!


07-23-2016 07:59 PM #22 francis (Member)

Alright guys, I should have enough time to get you everything else you need to implement this. It's an easy 50% ROI boost to any campaign so if you don't do it, you don't like free money ;-)

If you cant get it to work double triple check everything, and if you don't know Javascript you should defiantly hire an expert or learn it yourself. You should be able to just copy and paste to get this fired up, but I cannot guarantee it will work for you. All I know is its working for us right now and my affiliates in my network. 95% of my traffic right now we don't use landers so my internal team has not been using this lately but all my top affiliates running sweeps do and it gives them a huge competitive advantage.

Front end sweeps, then then back end sweeps works good on both adult and mainstream. Front end sweeps, and back end adult works good on adult. And the opposite too. The possibilities are endless.

I'll give you a zip file with a full done for you setup. 5-6 landers, the files and everything. Then you need to know how to pull the reports in your tracker so I'll show you that, as well as all the misc JS in the master file like vibration, alerts, screen orientation redirection and all that jazz.

This cloak is a nice one too, most guys here use it. I don't cloak anymore because we are mainly direct linking on our big volume traffic unless we use an app wall which is rare but there is no need to cloak those.

Here is an image of the build in tracker cloak:



We have all this built into the master file, but you take a lot of it out, then compress it.

Let me get all the files in a zip and I'll post in and how to pull the reports next


07-26-2016 12:29 AM #23 francis (Member)

I got the green light from my partner to give you guys a more advanced version. In the ZIP in the next post done for you free traffic generator.

You'll find 6 landers, a few might be aggressive so remove any copyrighted logos if you see them. The masterfile and the back file. Just swap your links, compress the JS and upload and you're good to go! Free money.




Included is bunch of extras in the masterfile. Make sure when you upload this to your server you encrypt and compress the JS to prevent it from being stolen outside the forum. use something like this

http://javascriptcompressor.com/

Here is the Masterfile JS.

Code:
// SETUP //

    var config = {
    "globalSettings" : {
        "trackingURL" : "http://xzxzx.voluumtrk.com/click",
        "backScript" : "http://e4e77e4ef4bf341d1a83-7749f9048f205e558c508fbf0d94a4d5.r61.cf5.rackcdn.com/backfix.min.js",
        "voluumCloak" :"http://track.traxxxx.com/014e817e-0b29-46f4-9423-5110c6e5b56f",
        "mobileCloak" : "http://track.traxkxxx.com/87df659c-972b-4138-b8fc-42b2d25415b4"
    },
    
    /* ---------------------------------------------------------------------------------------------*/
    // ExoClick - United States -  Wifi - RON
    "f5cdd0e0-9729-4e15-86a3-8b85c757cfa9" : {
        "backRedirect" : "http://xzxzx.voluumtrk.com/d33fe17b-d74e-4b6b-81e3-af2d0a414314",
        "outclickAlert" : false,
        "entryAlert" : false,
        "secondChance" : false,
        "deviceVibration" : false
    },
    
    // BB - Global - ExoClick Android Back Button
    "d33fe17b-d74e-4b6b-81e3-af2d0a414314" : {
        "backRedirect" : "http://xzxzx.voluumtrk.com/d33fe17b-d74e-4b6b-81e3-af2d0a414314",
        "outclickAlert" : true,
        "entryAlert" : true,
        "secondChance" : true,
        "deviceVibration" : true
    },
    
    /* ---------------------------------------------------------------------------------------------*/
    // Exoclick United States  iOS // Wifi - RON
    "b60199e3-a6a6-4c9c-93df-7e972eda1974" : {
        "backRedirect" : "http://track.xzxzx.com/7b4458f1-72c2-4560-9d20-a7e61a6a16ab",
        "outclickAlert" : false,
        "entryAlert" : false,
        "secondChance" : false,
        "deviceVibration" : false
    },
    
    // BB - Global - ExoClick iOS Back Button
    "7b4458f1-72c2-4560-9d20-a7e61a6a16ab" : {
        "backRedirect" : "http://track.xzxzx.com/7b4458f1-72c2-4560-9d20-a7e61a6a16ab",
        "outclickAlert" : true,
        "entryAlert" : true,
        "secondChance" : true,
        "deviceVibration" : true
    },
    
    
     /* ---------------------------------------------------------------------------------------------*/
    // Exoclick United States  Android // Carrier  - RON
    "ab23a207-017c-4145-bcfc-329c246206e2" : {
        "backRedirect" : "http://track.xzxzx.com/298e87b5-a552-4553-9373-bab26f49bf70",
        "outclickAlert" : false,
        "entryAlert" : false,
        "secondChance" : false,
        "deviceVibration" : false
    },
    
    /* ---------------------------------------------------------------------------------------------*/
    // Popads - United States - Android // Wifi - RON
    "8a988ecf-5a3d-4030-aa7f-998a92aa2a2e" : {
        "backRedirect" : "http://track.xzxzx.com/8cf24f1a-0d78-41d9-9695-5db766ba5b0b",
        "outclickAlert" : false,
        "entryAlert" : false,
        "secondChance" : false,
        "deviceVibration" : false
    },
    
    // BB - Global - Popads Android Back Button
    "8cf24f1a-0d78-41d9-9695-5db766ba5b0b" : {
        "backRedirect" : "http://track.xzxzx.com/8cf24f1a-0d78-41d9-9695-5db766ba5b0b",
        "outclickAlert" : true,
        "entryAlert" : true,
        "secondChance" : true,
        "deviceVibration" : true
    }
    
   

// /* ---------------------------------------------------------------------------------------------*/
//     // ExoClick - United States - SINGLE SITE BUY iOS // Carrier // 
//     "b99fdefa-2278-4b04-934b-3d941e99ec4b" : {
//         "backRedirect" : "http://track.xzxzx.com/c98242ab-57d2-428d-9f62-e320895ccdbe",
//         "outclickAlert" : false,
//         "entryAlert" : false,
//         "secondChance" : false,
//         "deviceVibration" : false
//     },
    
//      // BB - Global - SINGLE SITE BUY iOS  // Carrier - Back Button Campaign
//     "c98242ab-57d2-428d-9f62-e320895ccdbe" : {
//         "backRedirect" : "http://track.xzxzx.com/c98242ab-57d2-428d-9f62-e320895ccdbe",
//         "outclickAlert" : true,
//         "entryAlert" : true,
//         "secondChance" : true,
//         "deviceVibration" : true
//     },
// /* ---------------------------------------------------------------------------------------------*/


    
    
/* ---------------------------------------------------------------------------------------------*/
};

// Configure default classname for all outlinks. when set to 'out', an example would be <a href="" class="out">Click here</a>
    var outLinks = document.getElementsByClassName('out');
    
    // Configure default classname for all url parameter replaces. example: <span class="urlparameter" data="model"></span>
    // See URL Parameter script section for furthere details.
    var urlparameters = document.getElementsByClassName('urlparameter');

/*
* Simple JS Include Function
* THIS IS REQUIRED FOR THE BACK SCRIPT TO INCLUDE THE CORRECT DEPENDENCY SCRIPT
* Format:   include({array_files},{callback});
* Example:  include(['script1.js','script2.js'],function(){ alert('Loaded!'); });
*/

function include(array, callback) {
    var loader = function (src, handler) {
        var script = document.createElement("script");
        script.src = src;
        script.onload = script.onreadystatechange = function () {
            script.onreadystatechange = script.onload = null;
            handler();
        };
        var head = document.getElementsByTagName("head")[0];
        (head || document.body).appendChild(script);
    };
    (function () {
        if (array.length !== 0) {
            loader(array.shift(), arguments.callee);
        } else {
            if (callback && typeof (callback) === 'function') {
                callback();
            }
        }
    })();
}



// DEFAULT SCRIPTS -- INCLUDED IN ALL PAGES -- CANNOT BE DISABLED

/*
*  URL PARAMETERS SCRIPT
*  Usage:           <span class="urlparameter" data="PARAMETER HERE"></span>
*  Description:     Script will fill the span with the value of the parameter specifiec in the "data" attribute
*/
    function getURLParameter(name){
        if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
        return decodeURIComponent(name[1]);
    }
    
    for (var i = 0; i < urlparameters.length; i++)
    {
        var parameter = urlparameters[i].getAttribute('data');
        urlparameters[i].innerHTML = getURLParameter(parameter);
    }



/*
*  DATE SCRIPTS
*  Usage:           See each section below...
*  Description:     See each section below...
*/

    var date = new Date();
    
    
/*
*  DAY NAME
*  Usage:           <span class="dayName"></span>
*  Description:     Will insert the correct day name (for today) into the <span>
*/
        var dayNames = new Array(7);
        dayNames[0]=  "Sunday";
        dayNames[1] = "Monday";
        dayNames[2] = "Tuesday";
        dayNames[3] = "Wednesday";
        dayNames[4] = "Thursday";
        dayNames[5] = "Friday";
        dayNames[6] = "Saturday";

        var todayName = dayNames[date.getDay()];
        
        var dayNamePlaceholders = document.getElementsByClassName('dayName');
        
        for (var i = 0; i < dayNamePlaceholders.length; i++)
        {
            dayNamePlaceholders[i].innerHTML = todayName;
        }


/*  DISPLAY FRIENDLY DATE
*   Usage: <span class="dateText"></span>
*   You may also provide a "data-modifier" field in the HTML span that specifies a modification to the date.
*   Example:  data-modifier="-1" would subtract one day from the current date and display yesterdays date.
*/
        var monthNames = new Array(12);
        monthNames[0]=  "January";
        monthNames[1] = "February";
        monthNames[2] = "March";
        monthNames[3] = "April";
        monthNames[4] = "May";
        monthNames[5] = "June";
        monthNames[6] = "July";
        monthNames[7] = "August";
        monthNames[8] = "September";
        monthNames[9] = "October";
        monthNames[10] = "November";
        monthNames[11] = "December";

        var thisMonth = monthNames[date.getMonth()];

        var dateTextPlaceholders = document.getElementsByClassName('dateText');

        for (var i = 0; i < dateTextPlaceholders.length; i++)
        {
            var modifier = 0;
            if (parseInt(dateTextPlaceholders[i].getAttribute('data-modifier')))
            {
                modifier = parseInt(dateTextPlaceholders[i].getAttribute('data-modifier'));
            }
           
            var dateInt = parseInt(date.getDate());
            dateInt += modifier;
            dateTextPlaceholders[i].innerHTML = thisMonth + " " + dateInt + ", " + date.getFullYear();
        }
        
        
/*
*  COUNTDOWN TIMER
*  Usage:           <span id="countdownTimer" data-minutes="4" data-seconds="30"></span>
*  Description:     Replaces the element with ID of "countdownTimer" with a countdown timer. Set minutes and seconds with data-minutes and data-seconds.
*/
        
        if(document.getElementById('countdownTimer'))
        {
            var min = document.getElementById('countdownTimer').getAttribute('data-minutes');
            var sec = document.getElementById('countdownTimer').getAttribute('data-seconds');
            function countDown() {
                sec--;
                if (sec == -01) {
                    sec = 59;
                    min = min - 1; 
                } else {
                    min = min; 
                }
                
                if (sec<=9) { sec = "0" + sec; }
                
                time = (min<=9 ? "" + min : min) + " minutes and " + sec + " seconds";
                
                if (document.getElementById) { document.getElementById('countdownTimer').innerHTML = time; }
                
                SD=window.setTimeout("countDown();", 1000);
                if (min == '00' && sec == '00') { sec = "00"; window.clearTimeout(SD); }
            }
            
            window.onload = countDown;
        }
        
        
/*
*  PAGE OUTLINK REPLACER
*  Usage:           Set a class of "out" on any page link that should direct to the offer.
*  Description:     Will automatically set the href attribute to your trackingURL (which you sould set at top of this file) on any element with a class of "out"
*  Options:         Use data-offernumber="<offernumberhere>" to handle multiple offers per page. Example: <a href="" class="out" data-offernumber="2">Click Here</a>
*/
    for (var i = 0; i < outLinks.length; i++)
    {
        if (outLinks[i].hasAttribute('data-offernumber'))
        {
            var offerNumber = outLinks[i].getAttribute('data-offernumber');
            outLinks[i].href = config.globalSettings['trackingURL'] + "/" + offerNumber;
        } else {
            outLinks[i].href = config.globalSettings['trackingURL'];
        }
    }
    
    

// AGGRESSIVE SCRIPTS -- ONLY ENABLED FOR CAMPAIGNS CONFIGURED AT TOP OF THIS FILE

    // Required: Source Campaign -- The campaign that loaded this lander.
    var srcCamp = getURLParameter('srcCamp');
    var campConfig;

/* OUTCLICK ALERT
* Visitor will recieve a standard JS alert when they click out to the offer.
* Place a <span> at the bottom of the HTML file with the id of "outMessage" and contents being the message.
* Example: <span id="outMessage">PUT YOUR MESSAGE YOU WANT DISPLAYED HERE</span>
* To activate, set the "out" class on the anchor.  
* Example  <a href="your tracking link" class="out">Click here</a>
*/

    if (srcCamp in config && config[srcCamp]['outclickAlert'])
    {
        var outMessage = document.getElementById('outMessage').innerHTML;
        
        for (var i = 0; i < outLinks.length; i++)
        {
            outLinks[i].addEventListener("click", function() {
                alert(outMessage); 
            });
        }
    }
    
        
        
/* 
* 
* STANDARD ENTRY ALERT
* USAGE IN HTML: <span id="entryMessage">PUT YOUR ENTRY MESSAGE HERE</span>
*/
    if (srcCamp in config && config[srcCamp]['entryAlert'])
    {
        var entryMessage = document.getElementById('entryMessage').innerHTML;
        alert(entryMessage);
    }


/* 
* 
* SECOND CHANCE EXIT ALERT
* Remember to add 'out' as a classname to any link that you DONT want to fire this alert (like your offer outlink)
* USAGE IN HTML: <span id="secondChanceMessage">PUT YOUR SECOND CHANGE MESSAGE HERE</span>
*/
    
    if (srcCamp in config && config[srcCamp]['secondChance'])
    {
        for (var i = 0; i < outLinks.length; i++)
        {
            outLinks[i].addEventListener('click', function() {
                window.onbeforeunload = null;
            });
        }
           
        var secondChanceMessage = document.getElementById('secondChanceMessage').innerHTML;
    
        window.onbeforeunload = function(e) {
    
        // DO STUFF HERE LIKE LOAD IN SOME NEW CONTENT TO THE PAGE THAT SAYS, "WAIT DONT GO!".
        // THEY WILL SEE THE RESULT OF WHATEVER YOU DO HERE WHILE THE EXIT ALERT IS ON THE SCREEN.
    
        return secondChanceMessage; 
            
        }
    }


    
/* 
* 
* BACK BUTTON REDIRECTOR
*
*/
            
    if (srcCamp in config && config[srcCamp]['backRedirect'])
    {
        include([config.globalSettings['backScript']], function() {
            var srcTarget = getURLParameter('srcTarget');
            var initialCamp = getURLParameter('initialCamp');
            var step = getURLParameter('step');
            var initialTarget = getURLParameter('initialTarget');
            
            if(isNaN(parseInt(step, 10))) {
                step = 1;
                initialCamp = srcCamp;
                initialTarget = srcTarget;
            } else {
                step = parseInt(step, 10) + 1;
            }
            
            // if (initialCamp in scripts.backRedirect)
            // {
            //     var backCampaign = scripts.backRedirect[initialCamp];
            // } else {
            //     var backCampaign = scripts.backRedirect['default'];;
            // }
            
            var backCampaign = config[srcCamp]['backRedirect'];
            
            bajb_backdetect.OnBack = function() {
                window.history.back = function() {
                    document.location = backCampaign + '?initialCamp=' + initialCamp + '&initialTarget=' + initialTarget + '&step=' + step;
                }
            };
        });
    }
      
    
/* 
* 
* MOBILE DEVICE CLOAK -- REDIRECTS NON MOBILE DEVICES TO SAFE CAMP
*
*/

    
    if (config.globalSettings['mobileCloak'])
    {
        if(typeof window.orientation !== 'undefined'){
            var ortvalue = "defined"; 
        }
        if(ortvalue != "defined") {
            document.body.style.display = 'none';
            document.location.replace(config.globalSettings['mobileCloak'] + '?srcCamp=' + srcCamp);
        }
    }
        

/* 
* 
* Voluum CLOAK -- REDIRECTS TRAFFIC THAT DIDN'T COME FROM Voluum CAMP TO SAFE URL. CONFIGURE AT TOP OF FILE.
*
*/

if(config.globalSettings['voluumCloak'])
{
    if(getURLParameter('voluumdata') == "" || typeof getURLParameter('voluumdata') == 'undefined')
    {
        document.body.style.display = 'none';
        document.location.replace(config.globalSettings['voluumCloak'] + '?srcCamp=' + srcCamp);
    }
}

/* 
* 
* DEVICE VIBRATION
*
*/
    if (srcCamp in config && config[srcCamp]['deviceVibration'])
    {
        navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
        navigator.vibrate([1000, 500, 1000, 500]);
    }
    
    
    
    
// OUTLICK ALERT + POPUNDER
// After the visitor clicks your exit link, they will be taken to the expected offer.
// Howver, the offer will open in a new window, leaving the old window behind... which will load a second offer in the background

    // var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;

    // function launchpopLink(){
    //     url = "http://track.outgoinglink.com/click/2";
    //     document.location.assign(url);
    //     if (isSafari) {
    //         window.open(
    //             'http://track.outgoinglink.com/click/1',
    //             '_blank' 
    //         );
    //     }
        
    //     return false;
    // }


07-26-2016 12:39 AM #24 francis (Member)

Everything is explained in the MASTERFILE, just follow the instructions. Attached is everything you need.

I was thinking of a way to make this make this fun, so the first 3 people to post a screenshot of the Voluum report showing the autogeneration I'll give free Android Carrier traffic to. We just did a big media buy and they threw in some android carrier we don't want. We are going to sell it back in a few days but right now it's just laying around and we're too busy with our big traffic to monitize it.

To see your reports, just pull a report on your backbutton campaign and use the custom variable step, and you should see this.



Enjoy and if you have issues, I have a full step by step training video I can look for and post if you want it.


07-26-2016 12:45 AM #25 francis (Member)

Here is a download link the forum would not attach it.

http://537bc2b15bfaacc8673d-7a7408b2...FFICSYSTEM.zip


07-26-2016 02:12 AM #26 randomman (Member)

really surprised no one giving this thread attention!


07-26-2016 02:20 AM #27 nickpeplow (AMC Alumnus)

It's a great share, but suspect most people reading expected more than a simple back button redirect going by the headline... Then didnt get past the wall of text to the pretty nice lander content solution.

We use perch (https://grabaperch.com) to manage lander content, essentially the same as method above but with a nice user interface. Better solution in my opinion.


07-26-2016 02:36 AM #28 kash580 (Member)

Million $$$ Share but unfortunately having no experience about this ,,,, Js bla bla
Still reading everything clearly LOL
Hope to figure out soon


07-26-2016 08:09 PM #29 super8 (Member)

i Francis, please post video training. this post is like "Miracle Money maker" but i'm not to much tecnical.....tks and tks for your sharing


07-27-2016 10:09 AM #30 black hand (Member)

Just throwing this out there, but if I was someone with less than a sterling reputation I would perhaps be tempted to bury some sort of code deep within the overall code that would redirect an unnoticeable portion of the traffic to my own campaigns.

Or perhaps, some code that records where the traffic is coming from etc.

Just saying.....If i did happen to be someone who doesn't have the best reputation?


07-28-2016 01:21 PM #31 cbrughmans (Member)

Nice story but I don't buy it. Its impossible to make 340K from free traffic unless you have a website or blog with a LOT of organic traffic - and even then you would probably have to do some form of media buying to get to 340K in just 8 months.


07-28-2016 07:35 PM #32 leeches (Member)

I assume he means free traffic as in using a back script to gain another shot at a conversion if your initial paid click didn't convert.


07-28-2016 07:51 PM #33 cosmeivan ()

Yeah, he means free traffic as in the user gets trapped in an infinite loop when pressing the back button in his phone (most do this). So each iteration of the back button is count as 1 new visit (Free traffic kinda.)


07-28-2016 07:54 PM #34 circa (Member)

This is sick, thanks Jordon!


07-28-2016 08:29 PM #35 uaffiliate (AMC Alumnus)

thank you so much for this detailed insight, priceless!


07-28-2016 08:57 PM #36 pain2k (Veteran Member)

Obviously go through it to make sure there's nothing funny but to the guy's credit this is something a lot of you wouldn't be doing anyway and it's a damn good back button funnel, so just say thanks and be done with it. Simple as that.


07-29-2016 02:45 AM #37 mobile_ad_monitor (Member)

Wow really great idea! If anything it just makes me think of more things I could potentially do.

Just curious, why share this method if it still works? Did it stop working for you? I just can't imagine sharing something that is still working.


07-29-2016 03:02 AM #38 kash50 (Member)

^ you can make more cash with coaching #GoneGuru

Also in the first post he mentions 4 years ago "today" was his first AM success but his "join" date is October 2012. The first sentence usually tells it all.

Anyhow the method seems genuine on the surface but there might be other motives here.

Quote Originally Posted by francis View Post
Hey All,

It's my 4 year anniversary today of my very first AM Success..

Jordon


07-29-2016 03:38 AM #39 bluecrayon (Member)

You people grilling him are retarded. He's just sharing his own twist on the back button redirect. He's not selling anything. There's no malicious code.

Don't let the haters put you off francis, some people here are actually grateful.


07-29-2016 05:08 AM #40 kash50 (Member)

Totally agree with you. Perhaps you should check out Jordon's AMPS program.


07-29-2016 07:11 PM #41 francis (Member)
A-Z Video

Hey All,

I got a lot of skype messages asking for a step by step and live demo video for newbies.

Here is a full setup, and a live demo where I auto-generate

Enjoy!

https://vimeo.com/user34145572/revie...233/529aeb5ed6


07-29-2016 07:12 PM #42 francis (Member)

note: I do not have any affiliation with www.Voluum.com and i will remove video immediately if i am copyright infringing.


07-29-2016 11:48 PM #43 randomman (Member)

Quote Originally Posted by francis View Post
Hey All,

I got a lot of skype messages asking for a step by step and live demo video for newbies.

Here is a full setup, and a live demo where I auto-generate

Enjoy!

https://vimeo.com/user34145572/revie...233/529aeb5ed6
I don't know if it's just me but the video skips at certain parts.


07-30-2016 01:17 AM #44 MrT (AMC Alumnus)

Im a little confused with the back button script for popups.

If it's a popup, it started as a new fresh popup, so wouldn't the back button be greyed out/disabled because there is no history? How would the back button script work?


07-30-2016 02:12 AM #45 cosmeivan ()

Quote Originally Posted by MrT View Post
Im a little confused with the back button script for popups.

If it's a popup, it started as a new fresh popup, so wouldn't the back button be greyed out/disabled because there is no history? How would the back button script work?
That is the point of the back button hack/script. You create a history object, so the user wont get back to where she was (even if it was a popup as you said). The back button gets enabled and there will be a History (of course, it will be the fake/trap page where you want the user to go, usually another camp or same camp rotating landers/offers). What Jordon did is better because it tracks each iteration of the back button and he can split test better.


07-31-2016 06:19 PM #46 magnate (Member)

What is the purpose of the {initialTarget} token in the script/setup. It doesn’t appear to ever populate with any information in all the tests I’ve done.


08-02-2016 04:02 AM #47 sergei001 (Member)

Thanks for manual. Need to test it)


Home > General > Affiliate Marketing Forum