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 3 months ago