How to add a static landing page to Keitaro

Save a necessary landing page. Write {offer} in links href attribute in an HTML code of the landing, e.g. <a href=”{offer}”>link</a>.

Enter WinSCP. Create a new folder for a saved landing page in a “landings” folder:


How to add an advertising network as a traffic source in Keitaro

Click “Create” on a “Traffic Sources” page:

Check if there is your advertising network in templates: Continue

A simple way to install Keitaro on VPS

Today we will tell you how to install Keitaro on virtual servers of

We began with Vultr, because their VPS has the biggest SSD, which allow users to use high-speed servers and store big amounts of data on them.

At first, register on The process of signing up is simple, sometimes you need to wait for the moderators to verify your account.

After your account is verified, you can go to your profile page.

Let’s start with
Servers > “+” (Deploy new server)

New server

Then, you will be redirected to a setup page.

Choose a server location:

Server location

Type of the server – we need CentOS version 7 or higher:

Server type

Server size, 60GB are ideal for a beginning:

Server size

Fill in the name of the server, e.g. “keitarotrk” and click “Deploy Now”:

Server name+Deploy

Your server is created. Pay attention that the deploying of a server may take time. You’ll receive an email when the process is finished.

Now we will install Keitaro tracker on a just deployed server.

– There is a “keitarotrk’ server on a “Servers” page, go to the server’s menu:

Ready server choose

– The initial root password to your server can be found in your control panel, we recommend to change this password later. Copy the password and enter the server console in the upper right corner of the menu:

Go to console

– a remote server console will be opened. You’ll need to enter login: “root” and the password you just copied, and then enter the command:


Next, you will be asked to enter server IP, license key and domain, if you need an SSL Certificate. Everything else will be done by the script itself:


Single-click installation will:

  • Install the latest versions of Nginx, MariaDB, Redis, PHP 7
  • Configure Nginx, PHP-FPM, MariaDB
  • Install Monit to monitor Nginx, MariaDB and PHP-FPM
  • Configure firewall
  • Connect a free SSL certificate from Let’s Encrypt (with automatic extension)
  • Install Keitaro TDS.

Note: The script closes all ports except 22, 3333 (SSH port friendhosting), 80, 443. If your SSH is installed on a non-standard port, you will lose access to the console.

When the installation is successfully completed, you’ll get a link to an admin panel, your login and a password:

setup complete_en

Following this link you can get to Keitaro Dashboard and can begin setting up the tracker:


If the installation wasn’t completed successfully, go to our documentation page and try to identify and eliminate the cause yourself. If you still have a problem, please contact our technical support

Keitaro 8.2

  • A simplier interface of managing access is available.


  • Labels are added to the campaign’s reports (there are no labels in a general report). You can see the column with labels, if you choose grouping by sub_id, source and creative_id. Parameters, marked with a green label, go to a whitelist, marked with a red label go to a blacklist. The labels don’t cross one another among companies.


  • We added whitelist and blacklist, import and export. You can open the window either via “Reports > Black and White lists”, or clicking on “BL/WL” in a campaign report.


  • We added switching between “AND/OR” conditions in the filters. To change the condition just click on any of the “AND” or “OR” blocks.


  • “Link” and “Reports” buttons are added on the campaign page.
  • We added a substitution of <base path> for CURL action, instead of links convertation.
  • We added macros support for site code for CURL action. You can use all available macros in landing code.
  • We added a setting of “LP Load Method” for landing pages with “Redirect” and “Preload” variants. If you choose “Redirect”, then a redirect to the landing is performed. If you choose “Preload”, the landing will be shown right after the web-address is filled in. Moreover, you can use any macros in HTML code of the landing page, e.g. “{subid}”.
  • Changes in KClickClient: sub_id is saved into the session ($_SESSION[‘sub_id’]). It can be used while sending a postback.
  • The settings, set in the campaign’s report, are saved in a current version(except filters).
  • We added compatibility of “JS advertising” with scripts from bodyclick, popads.
  • We added,,, templates.
  • We added the choice of postback status in traffic sources.
  • We added the “{offer}” macros— a link to the offer. Use it on the landing pages with a “Preload” option.


Keitaro 8.1

  • We added row selection. Selected rows are subtracted from summary values.8.8.summary
  • New metrics:
    • Approve % (conversions / (sales + leads) * 100)
    • UC %
    • Bots %
    • LP clicks.
    • Sale time, Sale time since click
    • LP Click Time
    • Time Since LP Click
  • Separated metrics: EC, ROI, eCPM, EPC to “confirmed + hold” and “confirmed only”.
  • Added methods getOffer() and getSubId() to Click API Client. You can get the subid and offer link without performing redirect on the website.
  • Improved compatibility with JS in actions “Show text” and “Show HTML”. They return correct content-type and wrap the code if needed
  • Improved performance of reports and DB pruner.
  • Fixed some bugs.

Full changelog on page

Keitaro 8

Updated UI

  • New page “Campaigns” with brief stats. 
  • New page “Traffic Sources”.
  • New page “Landing Pages”.
  • New page “Affiliate Network”.
  • New page “Offers”.
  • Updated page “Streams”. Stats moved to the right side now.
  • New page “Profile”. Every user can choose preferred language and time zone, to change current password.
  • New Dashboard. Every block is customizable. 
  • Hotkeys. To see them, press “SHIFT+?”.
  • The sidebar is togglable.

Updated Reports

  • New report builder provides flexible reports. You can save a report to the favorites to get fast access to it from the menu.
  • New page “Trends”. There you can create trend chart with grouping by months, weekdays, days, and hours.
  • Added page “Exported Reports”. There you can see all previously exported reports and download them again.
  • All reports now have separated values of Revenue, EC, ROI that depends on conversion status (lead, sale, rejected).
  • New columns creative_id, ad_campaign_id, external_id.
  • New metrics:
    • LP click time
    • Time since LP click
    • LP CTR
    • Sale period
    • Sale time since click
    • and many others
  • New dimensions
    • Landing pages
    • Offers
    • Traffic Sources
    • Ad campaign ID
    • Creative ID
    • Weekdays
    • OS and Browser versions
    • IP
    • IP 1.2.*.*
    • IP 1.2.3.*
    • and many others
  • New campaign reports.

Changes in Lead Tracking and Conversions

  • Compatibility with upsells (rebills). Upsells increase click revenue, but not increase conversions count.
  • Count of Sub IDs and Extra Params increased to 10.
  • New cost method CPM (cost per 1000 clicks).
  • New offer payout methods CPC, CPA.
  • Added option “Auto” to campaign settings. When “auto” is enabled, a cost value is got from query param.
  • Implemented multi-step conversions. For example, you can send postbacks on every step “Cart → Order → Payment → Contact”.

Admin API (doc)

  • New Adminprovidesovide you access to all features of Keitaro through REST/JSON API.
  • New User API keys allow users to get access by using his personal API key.

Click API v2 (doc)

  • Keitaro API renamed to Click API.
  • Added cookies compatibility
  • Added PHP client for  Click API (You can take it on page “Integration” in your Keitaro).

Changes for Campaigns and Streams (doc)

  • Stream creation looks like this now:
  • Added names for streams.
  • Added option “Collect clicks”. To ignore all traffic in the stream, just switch it off.
  • Removed options “Bot protection” and “Default action”. They were unobvious. Not we recommend you to create streams with type “Default” or “Forced”. For example, to make bot protection, create a stream “Forced” with filter “Is Bot: allow”.
  • Implemented stream schemas. They are “Action”, “Redirect”, “Landing Pages” and “Offers”. Schema “Action” to perform some action for visitors. Schema “Redirect” to make a redirect. Schemas “Landing Pages” and  “Offers” split and send traffic between landing pages and offers.
  • New filters “Browser version”, “OS version”, Sub ID N, Extra Param N, ad_campaign_id, external_id, creative_id.
  • Removed option “Uniqueness detection method”. Keitaro chooses by himself the more appropriate method.
  • Uniqueness now checks IP+UA (with IPv6 compatibility).
  • Updated “URL Builder” for URL fields.
  • Removed action “Send to stream”.

Changes in Banners Mode (doc)

  • Removed campaign mode “Banner rotator”. You can use any stream with action “Show HTML”.
  • To get more information about using banner rotators, open “Integration” window and choose “Banner block (iframe)”, “Banner block (script)” or “JS ads”.
  • Integration method “JS ads” compatible with almost every ad formats.

Tracking Script (doc)

  • Removed campaign mode “Tracking”, you can setup tracking code with any campaigns now. To get information about this method, open “Integration” window or “Landing Pages > Instructions”
  • The script is now compatible with multi-page landing pages.
  • Compatible with stream schema “Offers”. You can split offers just on the landing page.
  • Can update params sub_id_1..10 and extra_param_1..10.

Changes in Users and Authorization

  • New user access rule settings.
  • Users gain access to Admin API but limited by their access rules.
  • Replaced hash method to sha256.
  • Added cookies crypting.

Keitaro Editions

  • Keitaro v8 has two editions: Basic and Pro. These features available only in Pro edition: Users management, Admin API, custom actions, and macros. Everyone with Basic license gets Pro features until 1th May.

Other Changes

  • Added page “Logs”.
  • “Visits” renamed to “Clicks”.
  • Updated cli.php (to get list of commands run “php bin/cli.php").
  • Removed page “Postback”. To get the postback URL, just create an affiliate network.


Q: How to install Keitaro 8?
A: Use new installer or 1-click installer.


Q: What the price for Pro edition?
A: It won’t be more that 2x of Basic license price.


Q: How to update from Keitaro 7 to Keitaro 8?
A: Download file upgrader8.php, upload it to Keitaro directory and open in the browser.


Automatic Server Setup for Keitaro TDS with Ansible

Here is a simple way of automatic server setup. No matter if server is dedicated or VPS.

To configure the server you need:

  • A newly installed server with CentoOS 7.
  • SSH access to the server.

It is important that the server must be clean: without running websites, control panels like ISPManager, Vesta, etc.

What will be installed:

  • Nginx;
  • A fresh and stable version of PHP with all the necessary extensions;
  • PHP-FPM;
  • MariaDB;
  • Redis;
  • Ioncube;


  • The latest version of Keitaro TDS will be installed;
  • If the RAM memory is less than 2gb then swap will be connected;
  • A database for Keitaro will be created;
  • A task will be added to Cron;
  • All unnecessary ports will be closed by firewall;
  • Monit will be configured for tracking all processes;
  • Time on the server will be synchronized.

So, let’s begin.

Go to the server by using SSH. For OSX you can do it in the local terminal. On Windows use Putty. Scripts can also be run from a remote machine. Now we’ll set up the server on the server itself.

Install Ansible and Nano editor

Prepare Ansible scripts

Edit the file hosts.txt

Replace the values with yours

Run the automatic setup:

When the setup is complete open http://ip_of_server/admin. If you see the admin panel of Keitaro TDS, then congratulations, you did everything right.  And if not, do not worry. Send us an email with attachment of error message: And we’ll help you.

Black Friday!

Redeem “KEITAROBLACKFRIDAY” on 25.11 to get 40% off!

Keitaro 7.8


  • Fixed referrer in CURL action
  • In integration scripts replaced document.write to innerHTML
  • Integrated with,,,,,,
  • Compatibility with address format “”
  • Fixed bug that came when is used File Storage, campaign checks uniqueness by IP and MySQL is down
  • Updated the most instructions in “Integration Assistant”
  • Integrated with,,, TrafficVance,,,
  • Added option “Proxy all query params” in Integration Assistant
  • Fixed: Formula ROI calculates 100% in case cost is 0
  • Fixed: In detailed reports, column “Destination” shows campaign ID instead of campaign came
  • Integration with and
  • Fixed search field in sidebar
  • Fixed checkboxes for ios devices
  • Hidden streams of deleted campaigns in action “Send to stream”
  • Updated list of devices and bot signatures
  • Slightly improved performance
  • Increased precision of values Revenue, Cost, and Profit
  • Fixed checking key in postbacks
  • Fixed compatibility with AbstractRedirect2
  • Fixed creation of the first API key
  • Fixed bug in API
  • Fixed bug with regions list
  • Fixed bug in Cache
  • Removed a critical vulnerability!
  • Fixed checkboxes in streams
  • Fixed updating URL in Monitoring
  • Fixed error message on saving the settings
  • Added validation of imported json
  • Allow entering list of countries like “US, UK, DE”
  • Several UI improvements
  • Fixed bug with cache which occurred on large amount of traffic
  • Solved problem with sending long postback.

Please update your Keitaro TDS installations!

We found a critical vulnerability in of component Keitaro TDS, which might give access to control panel (/admin).


How to fix that

  • Update to 7.7.10
  • Add HTTP-authentication to /admin


How to update 6.7.1

  1. Download file
  2. Replace existed file application/views/updates/index.phtml
  3. Go to “Updates” and press “Update”


HTTP-authentication for Apache

There you can generate files .htaccess and .htpasswd


HTTP-authentication for Nginx