Offer18 Knowledge Base
  • Welcome!
  • Network
    • Offers
      • Create New Offer
      • Advertiser URL Builder
      • Tracking URL Macros
      • Offer - General
      • Offer - Targeting
      • Offer - Targeting Rules
      • Offer - Creatives
      • Offer - Assign Affiliates
      • Offer - Capping Rules
      • Offer - Events
      • Offer - Payout Rules
      • Offer - Anti-Fraud
      • Offer - Fallback / JS Integration
      • Create CPS offer
      • Revenue Share Offer
      • Smart Offer
      • Deep Link
      • Pre-landing Page
      • Offer Categories
      • Coupons
      • Suppression List
      • Retargeting Tag
    • Affiliates
      • Create Affiliate
      • Affiliate Profile
      • Affiliate Employee
      • Manage Affiliates
      • Manage Offers
      • Generate Tracking URL
      • Affiliate Global Postback
      • Affiliate Postback Test
      • API Access Manage
      • Log in Affiliate Account
      • Reset Password
      • Affiliate Referrals
    • Advertisers
      • Create Advertiser
      • Advertiser Profile
      • Advertiser's Offers
      • Advertiser Test Link
      • Login as Advertiser
      • Password Reset
    • Postback Integration
    • Integration
      • Shopify
      • Cookieless integration with Shopify
      • WooCommerce
      • Cookieless integration with WooCommerce
    • Mobile Attribution Integration
      • AppsFlyer
        • Global Attribution URL
        • AppsFlyer Normal Postback
        • Advanced Privacy Postback
        • AppsFlyer - Click Signing
      • Adjust
      • Branch
      • Singular
      • Kochava
    • Reports
      • Reports
      • Reports - KPI
      • Reports - Templates
      • Conversion Logs
      • Affiliate Postback Logs
      • Advertiser Postback Logs
      • Capping Logs
    • Account Configuration
      • General Settings
      • Tracking Settings
      • Custom Appearance
      • SMTP Settings
      • Affiliate Settings
      • Advertiser Settings
    • Employees
      • Create Employee Account
      • Custom - Permissions
      • Clone Permissions
      • Additional Access
    • Tools
      • Mailer
      • Import Data
        • Import Affiliates
        • Import Affiliate Postback
        • Import Advertisers
        • Import Offers
        • Import Conversions
      • Offer Sync
        • Offer Sync Guide
        • Sync Logs
      • Product Feed
      • Automation
      • Link Tester
      • Fraud Detection
        • Fraud Fender
        • Conversion Risk Monitor
        • 3rd Party Integrations
    • Network API
      • Offers API
      • Offer Create API
      • Conversion API
      • Reports API
      • Affiliate & Advertiser Login API
      • Affiliate & Advertiser Create API
      • Affiliate & Advertiser Password Reset
      • OTP API
    • FAQ's
      • How to define event price in Payout Rule?
      • How to define affiliate specific payout in Payout Rules?
      • How to view Click logs?
      • What are different status in Advertiser Postback logs?
      • Why Domain have been flagged for SPAM?
      • What are different Affiliate Tracking URL Parameters?
    • SDK
      • Web SDK
      • Cookieless Tracking
      • Android SDK
      • Node SDK
    • Probabilistic Attribution
  • Universal
    • IPs Whitelist
    • Common Values
  • Affiliate
    • Affiliate API's
      • Offers API
      • Request Offer API
      • Reports API
      • Coupon API
      • SDK - Affiliate Offer Table
    • Integration
      • Google Ads Integration
      • Google Ads Integration - Web SDK
      • Offer18 - Zapier - Google Ads
      • Facebook Ads Integration
      • Facebook Conversion API
      • TikTok Event API
      • Snapchat Conversion API
    • Deep Link
    • Referral Program
  • iGaming
    • iGaming - Create Offer
    • iGaming - Events
    • iGaming - Reports
    • iGaming - Postback
    • iGaming - API
      • User API
      • Activity API
    • iGaming - SDK
      • WebSDK
Powered by GitBook
On this page
  • Setup (Pre-landing Page)
  • Affiliate Tracking URL (Pre landing Page)
  • Create webpage (Pre landing page)
  • Testing Pre landing Page

Was this helpful?

  1. Network
  2. Offers

Pre-landing Page

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.

Token to append in URL
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}
Example Landing Page
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.

Affiliate value tokens
{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)

  1. Login to Affiliate Dashboard

  2. Offers » My Offers (approved) » Select Offer

  3. 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

  <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

<!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> 

PreviousDeep LinkNextOffer Categories

Last updated 9 months ago

Was this helpful?