Documentation sections

Hosted pages: ZIP upload and page URLs

How to upload a landing page or offer archive to the tracker, which URLs open the page, and what limits apply to the archive.

A hosted landing page or offer is stored on the tracker server and opens on the same domain as the campaign link. Files are uploaded as a ZIP archive in the page editor. Owners, admins, team leads and designers can upload archives and edit files.

How a visitor sees the page

Under a campaign link, the hosted page is served directly in response to the click. The address in the browser stays the campaign link. Click macros are substituted into the page's HTML code.

Images, styles and scripts load from the page folder:

  • relative paths (img/logo.png, css/style.css) work without changes;
  • the tracker automatically points root-relative paths (/img/logo.png) in the page's HTML code to the page folder. This applies to the src, href, action, poster and data-src attributes and to url(...) entries. The exception is the lead intake addresses /api/v1/lead and /api/v1/lead-file: they do not change and lead to the tracker, see Leads from forms;
  • full addresses (https://… and //cdn.example.com/…) stay as they are.

In separate .css and .js files, root-relative paths do not change: use relative paths in them.

Only the index file is served under the campaign link. Other HTML files of the page, for example thanks.html, open at their direct URL when the visitor follows a link from it.

A hosted offer the visitor reached from a landing page is served the same way — at the click-through address, see From landing page to offer and multi-offer.

Direct URLs and preview

Each hosted page has a direct URL on the tracking domain:

PageURL
Offerhttps://track.example.com/_o/<offer ID>/
Landing pagehttps://track.example.com/_l/<landing page ID>/

The ID is the record's full identifier. To copy it, click the #N number in the ID column of the list. After the ID you can add a path to a page file: https://track.example.com/_o/<offer ID>/img/logo.png.

The direct URL is opened with the Open ↗ («Открыть ↗») button in the editor. Team members without edit rights see the Preview («Просмотр») button in the list — it leads to the same address. When a page is opened this way:

  • no click is created;
  • in .html and .htm files, a macro is replaced only if the URL has a parameter with the same name. For example, …/_o/<offer ID>/?click_id=test substitutes test for {click_id}. Other click macros stay as text;
  • macros are not replaced in a PHP response;
  • root-relative paths (/img/logo.png) are not pointed to the page folder.

A page moved to the trash returns 404 at its direct URL.

Uploading a ZIP

Hosting is chosen when you create the record: in the “Create landing page” («Создать лендинг») window, choose Hosted («Локальный») in the Type («Тип») field; in the “Create offer” («Создать оффер») window, choose Hosted in the Hosting («Хостинг») block. After the record is created, the editor opens automatically. The hosting of a created record cannot be switched in the panel.

To upload an archive to an existing hosted page:

  1. Open Landing pages («Лендинги») or Offers («Офферы»).
  2. In the hosted page row, click Editor («Редактор»).
  3. Click Upload .zip («Загрузить .zip»).
  4. Choose the archive.
  5. If the page already has files, confirm the replacement in the “The archive will REPLACE all files (N)…” («Архив ЗАМЕНИТ все файлы (N шт.)…») window.

In an empty editor, you can drag the archive into the Drag a .zip or files here («Перетащите .zip или файлы») area.

After the upload, the message “Files uploaded: N” («Загружено файлов: N») appears, and the file tree is shown on the left.

What happens to the previous files:

  • the archive replaces all page files entirely; it does not add to them;
  • before the replacement, the current code is saved as a separate version — see File editor, versions and export;
  • the offer's lead log leads.php is carried over into the new code. A leads.php file from the archive is not applied when a log already exists — see Leads from forms;
  • if the upload ended with an error, the page keeps working with the previous files.
Warning.

Unsaved edits in the editor are lost when you upload an archive. Save the open file before uploading.

Uploading separate files instead of an archive

In an empty editor, you can also drag separate files into the upload area. A single dragged .zip is extracted. Several files, or a file of another type, are placed in the page root as they are.

To add files to an already uploaded page without replacing the code, use the ↑ files («↑ файлы») link — see File editor, versions and export.

Archive requirements and limits

A regular ZIP without a password is accepted. Archives with LZMA compression and encrypted archives are rejected.

ParameterLimit
Archive size1 GB
Size of all files after extraction1 GB
Number of files in a page10,000
Time to transfer the archive to the server10 minutes

A proxy in front of the panel, such as Cloudflare, may limit the upload size to a smaller value.

If all files in the archive are in one common folder, for example site/, the tracker drops that folder and puts its contents into the page root. If the archive has other files or folders next to that folder, the structure is kept as is.

What is skipped on extraction

These archive entries are not extracted to the server, and no error is shown:

  • symbolic links;
  • .user.ini files;
  • entries with .. in the path.

Backslashes in file names are replaced with forward slashes.

Index file

The page opens with a file from the root. The tracker uses index.php if the file exists and PHP is enabled. Otherwise index.html opens.

If neither file exists, the visitor gets a 404. The same rule applies to subfolders: the address …/_o/<offer ID>/thanks/ opens thanks/index.php or thanks/index.html.

Hidden files

Files and folders whose names start with a dot (.env, .git, .htaccess) are not served to visitors: a request for them gets a 404. They are not included in versions or in the ZIP export.

They are visible in the editor's file tree, but the editor does not open, create, rename or delete them. To remove them, upload an archive without these files.

Check

  1. In the editor, click Open ↗.
  2. In the new tab, check that the page opened and that the images and styles loaded.

Click macros are checked with a test click on the campaign link — see First campaign.

Upload errors

The message appears above the editor.

MessageCauseWhat to do
“the file is not a valid .zip” («файл не является корректным .zip»)The file does not open as a ZIP archiveRebuild the archive in ZIP format
“the archive uses an unsupported compression method (LZMA, AES encryption, etc.) — rebuild it as a regular ZIP without a password” («архив сжат неподдерживаемым методом (LZMA, AES-шифрование и т.п.) — пересоберите обычным ZIP без пароля»)The archive has a password or uses compression the tracker cannot extractRebuild it as a regular ZIP without a password
“the archive is damaged — rebuild it and upload it again” («архив повреждён — пересоберите его и загрузите заново»)Files inside the archive are corruptedBuild the archive again
“too many files” («слишком много файлов»)The archive has more than 10,000 files and foldersRemove unnecessary files
“file too large (limit 1 GB per file, 1 GB per extracted archive)” («файл слишком большой (лимит 1 ГБ на файл, 1 ГБ на распакованный архив)»)After extraction, the files take up more than 1 GBReduce the size of the files
“1 GB upload limit exceeded” («превышен лимит загрузки 1 ГБ»)The archive itself is larger than 1 GBMake the archive smaller
“could not read the form (the upload was interrupted or damaged)” («не удалось прочитать форму (загрузка прервана или повреждена)»)The connection dropped, or the transfer took longer than 10 minutesUpload again
“the PHP code of an offer with internet access can be changed by the owner, admin and designer” («PHP-код оффера с доступом в интернет меняют владелец, администратор и верстальщик»)The offer has PHP with network access («PHP с доступом в сеть») enabled, and the archive is being uploaded by a team leadThe archive must be uploaded by the owner, admin or designer — see PHP in hosted pages
Updated Need help? ↗