How to add a landing page

Landing pages are managed in the "Offers" section when selecting a specific offer. To add, you must specify the address of the landing without http:// at the beginning and / at the end. Each landing page generates key to transmit orders. The landing page can be linked to the company. In the case of a hard binding, distribution scripts are ignored if they are specified. The default landing page is displayed to the users on the web-site.

Important! To track statistics and receive orders, you can only use landing pages that work on the basis of the CMS included in the shop folder of this distribution. It is impossible to get statistics and orders from sites running on other systems by simply adding their URL to the list. To do this, you need to set up a special integration, which is described in the section "Connecting third-party offers and services".

Landing Requirements

To work correctly with AlterCPA, simple landing pages must meet the following requirements:

  • The main content of the landing should be placed on one page. Sites with many pages may not work correctly due to multiple counts of the same visitor.
  • Among the additional pages of landing, it is recommended to provide: a thanks page (opens after a successful lead generation), pages with legal information (terms of service, privacy policy).
  • The landing page should not contain any scripts blocking the operation. Very often, this phenomenon is observed on sites made on site builders. Before using a site that was designed via site builder, it must be rebuilt from scratch. It is not recommended to use landing pages from site builders in real work, since their behavior can be unpredictable.

Adding landing to site repository

Before adding a landing page in the system, you need to place it on your server. To place landing and prelandings pages, an appropriately configured repository is used. If you used the script from the platform’s delivery kit to configure the server, this repository is located on your server in the default.site or r.domain.com folder.

Inside this repository, you need to create a folder in which the site will be located. We recommend using the location of the landings according to one of the following schemes:

r.domain.com/offer/geo/site
r.domain.com/offer/lang/site
r.domain.com/offer/site
r.domain.com/offer

In these schemes r.domain.com is the name of your existing repository folder, offer is short offer name, geo and lang are two-letter country and language codes, and site is the site name. For maximum compatibility, it is recommended to write folder names in lower case without using capital letters. We recommend choosing a site name for landing pages from the list: buy, get, order, buy-now, order-now, get-now, purchase etc. For example: r.altercpa.site/titan-gel/en/buy.

The first and second schemes are suitable for networks working with the same offers in several countries or in several languages. The third scheme is optimal for networks working in one language or in one country. The fourth scheme is optimal if only one site is used per offer and no prelandings are used.

After creating the folder, place your landing page files in it. The main landing page should be renamed to index.php. As the next step, add the landing page to the offer in the platform in the "Control - Offers" section by the "Sites" button. As the address, you must specify the full path to the folder starting with the domain, for example: r.altercpa.site/titan-gel/us/buy - without http:// in front and / at the end.

Landing page setup

At the beginning of the index.php file of each landing page specifies the main parameters. This code is displayed in the form of a site editor in the system, copy it from there. It looks like this:

<?php
$cms = require_once $_SERVER['DOCUMENT_ROOT'] . '/init.php';
$cms->landing( 1, 2 ); // Offer and site IDs
?>

Put the following code in the header part before the </head> tag:

<?php $cms->header(); ?>

Put the following code before the </body> tag:

<?php $cms->footer(); ?>

The order submission form must be set up in accordance with the CMS requirements:

  1. The action attribute of the form must be empty, the method attribute must be set to post: action="" method="post".
  2. Add the <?=$cms->params();?> code after opening <form> tag.
  3. Rename the input fields according to the CMS requirements. Customer name is send via name field, phone - phone, e-mail - email, delivery address - address, order comment - comment, country ISO-code - country, additional parameter called foobar - params[foobar].
  4. Check that the form does not have an AJAX submission handler associated with it. Sending orders via AJAX is not provided by default.

Ypu can add as many forms as you need. The form should look like this:

<form action="" method="post">
<?=$cms->params;?>
<input type="text" name="name" />
<input type="tel" name="phone" />
<button type="submit" />
</form>

In the site code, you can use the insertion of price and geo parameters, which are determined automatically depending on the list of countries specified in the offer settings and the country of the customer.

  • <?=$cms->price;?> - the price of the main item in customer's country
  • <?=$cms->prices[123];?> - the price of variant item with ID 123
  • <?=$cms->oldpr;?> - the "old" price of the main item in customer's country
  • <?=$cms->oldprs[123];?> - the "old" price of variant item with ID 123
  • <?=$cms->discount;?> - the discount of the main item in customer's country
  • <?=$cms->discounts[123];?> - the discount of variant item with ID 123
  • <?=$cms->currency;?> - the currency of customer country
  • <?=$cms->country;?> - customer country ISO-code
  • <?=$cms->geoinfo('city'); ?> - customer city (if available)
  • <?=$cms->geoinfo('region'); ?> - customer regoin (if available)
  • <?=$cms->geoinfo('district'); ?> - customer district (if available)

We recommend adding the following field to the form:

<input type="hidden" name="country" value="<?=$cms->country;?>" />

This will allow you to correctly determine the prices shown to the user, in case of problems with determining his country

Thanks page settings

The "Thanks" page, which comes with the CMS, is essentially a dummy page. You should use your own "Thanks" page for each site.

You can add a thanks page for each site separately. To do this, create a success.php file in the folder with the site and specify the following code in the site index.php after $cms = require_once:

$cms->thankspage = __DIR__ . '/success.php';

To replace only the success lead page, use:

$cms->successpage = __DIR__ . '/success.php';

To replace only the registration error page, use:

$cms->errorpage = __DIR__ . '/error.php';

To replace only the success registration and redirect page, use:

$cms->redirectpage = __DIR__ . '/success.php';

To replace only the upsale success page, use:

$cms->updatepage = __DIR__ . '/success.php';

You can also use a single thanks page for all landing pages. To do this, create a success.php file in the root folder of your site reposiory and specify the following code in the repository config.php file:

define( 'THANKSPAGE', $_SERVER['DOCUMENT_ROOT'] . '/success.php' );

Please note that in this case, all the paths to the resources used on the "Thanks" page (pictures, js and css files, etc.) must be absolute in order to display correctly when connected to any landing page.

Using new CMS, put the following code in your success.php before closing </body> tag:

<?php $this->footer(); ?>

You can also put the following code before closing </head> tag:

<?php $this->header(); ?>

You can use any landing page functions on the thanks page, but when accessing them you must use $this instead of $cms.

Copying and uploading landing pages by URL

You can upload landing pages of your suppliers in automatic mode. To do this, use the "Upload" section in the offer management. In this section, add a upload task, specify the required offer and a list of URL sites that you want to upload. You can specify the name of the folder where the site will be uploaded, a space after the URL of the site. Landing pages are uploaded in semi-automatic mode, they must be modified and corrected after uploading. Proofreading should include the removal of third-party JS-code that may interfere with the operation of the site. You can set regular tasks to clear the site code when you add a upload job tasks.

NB! After downloading someone else's website illegally, you need to take measures to restore your karma. Pet the cat!