The Pre-landing page is like a transit page which help users to land on particular landing pages as per their requirements. It acts as a link between the traffic sources and the offer's landing page. Pre-landing pages for push and native ads are very useful in increasing conversions.
Setup (Pre-landing Page)
1. Offers » Offer-Approved
2. Select Offer » General
3. Select "Pre-landing " from "Type " dropdown and add the "Pre-landing URL " under "Landing Page " Field.
Copy landing_page={pre_landing} (Mandatory)
Append tokens and parameters for data values as per your requirements, You can choose and add the key-value pairs from the options given below.
1. aff_click_id={aff_click_id}
2. sub_aff_id={sub_aff_id}
3. aff_sub1={aff_sub1}
4. aff_sub2={aff_sub2}
5. aff_sub3={aff_sub3}
6. aff_sub4={aff_sub4}
7. aff_sub5={aff_sub5}
8. googleaid={googleaid}
9. deviceid={deviceid}
10. iosidfa={iosidfa}
11. source={source}
Copy https://example-pre-landing.com?landing_page={pre_landing}&aff_click_id={aff_click_id}&sub_aff_id={sub_aff_id}&aff_sub1={aff_sub1}&source={source}
4. Append Offer18 tokens to the Offer URL to pass the required values to the advertiser.
Copy {aff_click_id}, {sub_aff_id}, {aff_sub1}, {aff_sub2}, {aff_sub3}, {aff_sub4}, {aff_sub5}, {googleaid}, {deviceid}, {iosidfa}, {source}
5. Submit to save changes
Affiliate Tracking URL (Pre landing Page)
Login to Affiliate Dashboard
Offers » My Offers (approved) » Select Offer
Select the Pre-landing Page from the drop-down
4. Get Affiliate Tracking URL
Create webpage (Pre landing page)
Create a webpage using below script having same URL used in Setup
Copy < script >
function base64_decode(r) { if ("function" == typeof this.window.atob) return atob(r); var n, t, e, i, o, f, a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", d = 0, h = 0, c = []; if (!r) return r; r += ""; do { n = (f = a.indexOf(r.charAt(d++)) << 18 | a.indexOf(r.charAt(d++)) << 12 | (i = a.indexOf(r.charAt(d++))) << 6 | (o = a.indexOf(r.charAt(d++)))) >> 16 & 255, t = f >> 8 & 255, e = 255 & f, c[h++] = 64 == i ? String.fromCharCode(n) : 64 == o ? String.fromCharCode(n, t) : String.fromCharCode(n, t, e) } while (d < r.length); return c.join("") }
function getUrlVars() { var vars = {}; var parts = window . location . href .replace ( /[?&] + ([ ^ =&] + )=([ ^ &] * )/ gi , function (m , key , value) { vars[key] = value; }); return vars; }
function getUrlParam(parameter) { var urlparameter = '' ; if ( window . location . href .indexOf (parameter) > - 1 ) { urlparameter = getUrlVars ()[parameter]; } return base64_decode (urlparameter); }
function getQueryParam(param) { const urlParams = new URLSearchParams ( window . location .search); return urlParams .get (param) ? urlParams .get (param) : '' ; }
function createQueryString(mapping) { let queryString = Object .keys (mapping) .map (key => { let value = getQueryParam (key); return value ? ` ${ mapping[key] } = ${ value } ` : '' ; }) .filter (param => param !== '' ) .join ( '&' ); return queryString; }
var landing_page = getUrlParam('landing_page');
var aurl = document.getElementsByTagName('a'), ahf = aurl.length;
var parameterMapping = { 'aff_click_id' : 'aff_click_id' , 'sub_aff_id' : 'sub_aff_id' , 'aff_sub1' : 'aff_sub1' , 'aff_sub2' : 'aff_sub2' , 'aff_sub3' : 'aff_sub3' , 'aff_sub4' : 'aff_sub4' , 'aff_sub5' : 'aff_sub5' , 'googleaid' : 'googleaid' , 'deviceid' : 'deviceid' , 'iosidfa' : 'iosidfa' , 'source' : 'source' };
var parameterString = '';
if (Object.keys(parameterMapping).length > 0) { parameterString = createQueryString (parameterMapping); }
while (ahf--) { if (parameterString) { aurl[ahf].setAttribute('href', `${landing_page}&${parameterString}`); } else { aurl[ahf].setAttribute('href', landing_page); } aurl[ahf].setAttribute('target', '_blank'); }
</script>
Testing Pre landing Page
Use the below code snippet to test the Pre landing script
Copy <! DOCTYPE html >
< html >
< head >
< title >Page Title</ title >
</ head >
< body >
< a href = "" > Test Link 1</ a >
< a href = "" > Test Link 2</ a >
< a href = "" > Test Link 3</ a >
</ p >
< script >
function base64_decode(r) { if ("function" == typeof this.window.atob) return atob(r); var n, t, e, i, o, f, a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", d = 0, h = 0, c = []; if (!r) return r; r += ""; do { n = (f = a.indexOf(r.charAt(d++)) << 18 | a.indexOf(r.charAt(d++)) << 12 | (i = a.indexOf(r.charAt(d++))) << 6 | (o = a.indexOf(r.charAt(d++)))) >> 16 & 255, t = f >> 8 & 255, e = 255 & f, c[h++] = 64 == i ? String.fromCharCode(n) : 64 == o ? String.fromCharCode(n, t) : String.fromCharCode(n, t, e) } while (d < r.length); return c.join("") }
function getUrlVars () { var vars = {}; var parts = window . location . href .replace ( /[?&] + ([ ^ =&] + )=([ ^ &] * )/ gi , function (m , key , value) { vars[key] = value; }); return vars; }
function getUrlParam (parameter) { var urlparameter = '' ; if ( window . location . href .indexOf (parameter) > - 1 ) { urlparameter = getUrlVars ()[parameter]; } return base64_decode (urlparameter); }
function getQueryParam (param) { const urlParams = new URLSearchParams ( window . location .search); return urlParams .get (param) ? urlParams .get (param) : '' ; }
function createQueryString (mapping) { let queryString = Object .keys (mapping) .map (key => { let value = getQueryParam (key); return value ? ` ${ mapping[key] } = ${ value } ` : '' ; }) .filter (param => param !== '' ) .join ( '&' ); return queryString; }
var landing_page = getUrlParam ( 'landing_page' );
var aurl = document .getElementsByTagName ( 'a' ) , ahf = aurl . length ;
var parameterMapping = { 'aff_click_id' : 'aff_click_id' , 'sub_aff_id' : 'sub_aff_id' , 'aff_sub1' : 'aff_sub1' , 'aff_sub2' : 'aff_sub2' , 'aff_sub3' : 'aff_sub3' , 'aff_sub4' : 'aff_sub4' , 'aff_sub5' : 'aff_sub5' , 'googleaid' : 'googleaid' , 'deviceid' : 'deviceid' , 'iosidfa' : 'iosidfa' , 'source' : 'source' };
var parameterString = '' ;
if ( Object .keys (parameterMapping). length > 0 ) { parameterString = createQueryString (parameterMapping); }
while (ahf -- ) { if (parameterString) { aurl[ahf] .setAttribute ( 'href' , ` ${ landing_page } & ${ parameterString } ` ); } else { aurl[ahf] .setAttribute ( 'href' , landing_page); } aurl[ahf] .setAttribute ( 'target' , '_blank' ); }
</ script >
</ body >
</ html >
Last updated 4 months ago