How to add a landing page

Landing page is one-page site with an order form. Its task is to collect the buyer's data (name, phone, email) and display the "Thank you" page. Most often it looks like a product or service description page. Sometimes it looks like a review site or a news blog, but with an order form. Can work with the registration form and redirect the user to the personal account.

Landings are managed under the "Sites" button in the "Control" - "Offers" section. To add, you need to click on the green "Landing" button, specify the landing path, enter its name and select the creation method - upload a customized or simple archive, create a dummy site, download the site from the link.

Landing requirements

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

  • The landing page is hosted in a special site storage and connected to the built-in CMS. The site store is installed automatically and placed in the folder or sites in the cloud version. Without a connection to the storage, landing pages wont be able to collect statistics and receive leads. If the site can't be connected to the repository, add it as external offer.
  • 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. Large online stores and complex services are connected as external offers.
  • 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 built-in Thank You page is suitable for most cases and adapts to the language of the visitor.
  • 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.

Creating langing

Click on the "Sites" button of the selected offer in the "Control" - "Offers" section. This section works with all offer websites: landings, pre-landings, redirect sites and TDS. To add a new site, click on the green "Landing" button above the table.

The main parameter of the site is its location in the storage - URL. The domain is specified automatically, you only need to enter the path. The choice of path is described in detail below. The path is specified without slashes at the beginning and end, for example: de/my-top-offer/buy. The name of the site can be anything and is indicated only for the convenience of users.

There are several options for initializing the site when adding:

  • Just add the site to the list. With this option, no actions are performed with the server. The configured site should already be located on the selected path. Instructions for manually setting up the site are presented below.
  • Create default dummy site. A miniature site will be hosted on the server: a lead form with "Name" and "Phone" fields, and a "Submit" button. You can also add a title with the name of the offer and the fields "E-mail" and "Password".
  • Upload the site created according to the manual. Instructions for setting up the landing page are presented below. The site is packed into a ZIP archive. The content of the site (folders and files, especially index.php) should be located in the root of the archive, and not in a subfolder.
  • Upload the site site from a regular archive. The archive must be in ZIP format, the site content must be located in the root of the archive. Automation will try to find the index.php or index.html file, clean it from extraneous code, convert forms and add the necessary code to the header, footer and forms of the site. Be sure to manually check the site after uploading! Automation won't remove pixels, metrics or third-party networks sending code, this must be cleared manually!
  • Try to download the site by the URL. Automation will try to download the site from the specified link, clean it from extraneous code and configure it according to the instructions. The result is not guaranteed - not all sites are downloadable! Manual verification after download is required.

When creating a site in an active offer, it is recommended to check the "Add hidden" checkbox so that users do not see your manipulations in preparing and checking the site.

When adding a site from a configured archive, it is recommended to check the "Automatically generate archive" checkbox so that users can immediately download the prepared site archive from their flows.

After creating a landing page, you can set additional options:

  • URL - full site link. In this field, it is set in its entirety, including the domain and path. The protocol at the beginning and the slash at the end are not specified. Examples are in the next section.
  • HTTPS - SSL settings for the site. You can use system settings or force enable/disable SSL in the link.
  • API-key - used for site interaction with the platform, it is not recommended to change it.
  • Mobility - a recommendation for using the site for mobile or desktop traffic. Affects only the icon in the list of sites, does not cut off traffic.
  • Use by default - the landing will be standard in new flows and when requesting a site from the storefront.
  • Private site - the landing page is shown only to the specified white list and hidden from the black list. The lists contain the IDs of users, teams, or agency webmasters.
  • Hardly link the site to the company - all leads from this site will go to the company selected from the list.
  • Naming - setting the name of the advertising campaign for working with applications.
  • Website archive - you can download a specially prepared archive for webmasters. The archive can be created automatically if you check the "Automatically generate a site archive from the repository now" checkbox. In this case, the archive is formed exactly at the time of submitting the form. Check this box every time you change the site.
  • Rename folder on the server - if you change the path of the site, the folder with it will be renamed automatically.

On the site editing page, there are additional forms for creating a stub site, uploading a prepared or simple site archive. The behavior of these forms is the same as when creating a site.

Placing landing into site repository

Before manual adding a landing page, you need to place it on your server. Site storage is used to host landings and pre-landings. It is located on your server in the folder for the server version or sites for the cloud version. Inside this repository, you need to create a folder in which the site will be located.

The choice of folder name is very important! We recommend using one of the following layouts for landing pages:

In these schemes 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:

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.

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:

$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">
<input type="text" name="name" />
<input type="tel" name="phone" />
<button type="submit" />

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 downloading landing pages by URL

You can download landing pages of your suppliers in automatic mode. To do this, use the "Download" section in the offer management. In this section, add a download task, specify the required offer and a list of URL sites that you want to download. 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 downloaded in semi-automatic mode, they must be modified and corrected after downloading. 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 download job tasks.

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