Using Macros to Pass Data to Landing Pages & Offers

RevMax can pass certain click, device and token data to offers by using RevMax macros in the landing page or offer url. 

Offers

Unless you own the offer, much of this information may not want to be passed. The most commonly used macros are;

  • the RevMax tracking id → {tracking_id}
  • token data → {token1} - {token10}
  • email address and phone number (if collected) for pre-pops → {email} and {phone}

Landing Pages

Pass specific device and geo data to your landing pages, which can then be captured and displayed on the page.

Available RevMax Macros for Use in Urls

MacroDescription
{tracking_id}RevMax tracking id
{campaign_id}RevMax campaign id
{offer_id}RevMax offer id
{ip_address}IP address
{time}Unix timestamp for the time of click. Example → 1508373962
{micro_time}Unix micro time for the time of the click. Example → 1508373962563
{is_mobile}Passes 1 if the click is from a mobile device.
{phone}Phone number (if collected)
{email}Email Address (if collected)
{device_mf}Manufacturer of the device. Example → Samsung
{device_name}Simple name of the device. This can vary but is generally the name of the device without the manufacturer. Example → Galaxy Note 8
{device_marketing}Full marketing name of the device. Example → Samsung Galaxy Note 8
{device_type}Type of device. See RevMax Device Types for more information.
{device_os}Operating system
{device_isp}ISP
{platform_name}Platform the device is operating on. Examples → 
{browser_name}Browser the device is using. Examples → 
{country_name}Country name
{country_code}2-letter country code
{city_name}City name
{region_name}State/Region/Province name
{postal_code}Postal or zip code
{token1} - {token10}Applicable values from the tokens

PHP Landing Pages

To keep things simple, we generally use the following technique;

  • Pass macro values in parameters that match the macro itself, without the brackets.
  • Use a stand-alone php file to capture all possible parameter/values combinations. Then, include this file on any landing page where this data is desired. In this file, php variables are set which match the parameters.
  • Never trust user input. Therefore, make sure the value is escapes for output before echoing on the page. Note, this can be done later if raw values are needed.
  • Set a default value in case nothing was passed.
  • Echo the variable on the page.

Example landing page url passing device marketing name and country

http://www.domain.com/index.php?device_marketing={device_marketing}&country_name={country_name}

Example include file code;

<?php
$tracking_id      = !empty($_GET['tracking_id']) ? htmlspecialchars($_GET['tracking_id'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$offer_id         = !empty($_GET['offer_id']) ? htmlspecialchars($_GET['offer_id'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$ip_address       = !empty($_GET['ip_address']) ? htmlspecialchars($_GET['ip_address'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$time             = !empty($_GET['time']) ? htmlspecialchars($_GET['time'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$micro_time       = !empty($_GET['micro_time']) ? htmlspecialchars($_GET['micro_time'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$is_mobile        = !empty($_GET['is_mobile']) ? htmlspecialchars($_GET['is_mobile'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$phone            = !empty($_GET['phone']) ? htmlspecialchars($_GET['phone'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$email            = !empty($_GET['email']) ? htmlspecialchars($_GET['email'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_mf        = !empty($_GET['device_mf']) ? htmlspecialchars($_GET['device_mf'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_name      = !empty($_GET['device_name']) ? htmlspecialchars($_GET['device_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_marketing = !empty($_GET['device_marketing']) ? htmlspecialchars($_GET['device_marketing'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_type      = !empty($_GET['device_type']) ? htmlspecialchars($_GET['device_type'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_os        = !empty($_GET['device_os']) ? htmlspecialchars($_GET['device_os'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$device_isp       = !empty($_GET['device_isp']) ? htmlspecialchars($_GET['device_isp'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$platform_name    = !empty($_GET['platform_name']) ? htmlspecialchars($_GET['platform_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$browser_name     = !empty($_GET['browser_name']) ? htmlspecialchars($_GET['browser_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$country_name     = !empty($_GET['country_name']) ? htmlspecialchars($_GET['country_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$country_code     = !empty($_GET['country_code']) ? htmlspecialchars($_GET['country_code'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$region_name      = !empty($_GET['region_name']) ? htmlspecialchars($_GET['region_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$city_name        = !empty($_GET['city_name']) ? htmlspecialchars($_GET['city_name'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token1           = !empty($_GET['token1']) ? htmlspecialchars($_GET['token1'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token2           = !empty($_GET['token2']) ? htmlspecialchars($_GET['token2'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token3           = !empty($_GET['token3']) ? htmlspecialchars($_GET['token3'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token4           = !empty($_GET['token4']) ? htmlspecialchars($_GET['token4'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token5           = !empty($_GET['token5']) ? htmlspecialchars($_GET['token5'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token6           = !empty($_GET['token6']) ? htmlspecialchars($_GET['token6'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token7           = !empty($_GET['token7']) ? htmlspecialchars($_GET['token7'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token8           = !empty($_GET['token8']) ? htmlspecialchars($_GET['token8'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token9           = !empty($_GET['token9']) ? htmlspecialchars($_GET['token9'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';
$token10          = !empty($_GET['token10']) ? htmlspecialchars($_GET['token10'], ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE, 'UTF-8', false) : 'SOME_DEFAULT_VALUE';

Add the offer link urls to the include file. If the tracking domain is ever changed, it only needs to be changed in 1 place. Plus, this code will create variables for offer numbers 1-50.

<?php
$offer = "http://trackingdomain.com/click/";
for ($i = 1; $i <= 50; $i++) {
    ${"offer$i"} = "http://trackingdomain.com/click/?n=$i";
}

Landing Page example;

<?php include '/absolute/path/to/file/variables.php';
<!DOCTYPE html>
<html>

<head>
</head>

<body>
<p>Device - <?php echo $device_marketing; ?></p>
<p>Country - <?php echo $country_name; ?></p>

<p><a href="<?php echo $offer; ?>">Click for offer</a></p>
<p><a href="<?php echo $offer1; ?>">Click for offer number 1</a></p>

</body>
</html>