Click API v1

Пример использования

curl "http://demo.keitarotds.com/api.php?action=get_link\
&api_key=89185200811a6ebb7c16be09616f2f18\
&group=newcoms\
&ip=217.212.230.137\
&keyword=free+popcorn\
&langs=es\
&referer=http%3A%2F%2Fwww.google.com.my%2Fsearch%3Fq%3D%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dorg.mozilla%3Aen-US%3Aofficial%26client%3Dfirefox-a&charset=utf-8\
&ua=Mozilla%2F4.0+(compatible%3B+Mozilla%2F5.0+(Windows%3B+U%3B+Windows+NT+5.1%3B+en-US%3B+rv%3A1.7.13)+Gecko%2F20060414%3B+Windows+NT+5.1)"

Ответ:

{
  "stream":{
    "id":"1098",
    "group_id":"11"
    "url": "http://google.com",
  },
  redirect: {
    "content": null, 
    "headers": [
        "LOCATION: http://google.com"
    ], 
    "type": "location"
  }
}

Формат ответа json.

Пример на PHP

В 7й версии Keitaro, вы можете получить готовый код на странице «Кампания > Дополнительно > Помощник подключения кампании > Другое > API».

<?php
$domain = 'domain.com';
$apiKey = '2614374967c4ecce1cc1a406e3d78848';
$campaignId = 'campaign';
$keyword = urlencode('KEYWORD');
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$ua = urlencode($_SERVER['HTTP_USER_AGENT']);
$ip = null;
$headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR');
foreach ($headers as $header) {
    if (!empty($_SERVER[$header])) {
        $ip = $_SERVER[$header];
        break;
    }
}
if (strstr($ip, ',')) {
    $tmp = explode(',', $ip);
    if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'mini')) {
        $ip = trim($tmp[count($tmp) - 2]);
    } else {
        $ip = trim($tmp[0]);
    }
}       
$referrer = urlencode(@$_SERVER['HTTP_REFERER']);
$url = "http://$domain/api.php?charset=utf-8&action=get&api_key=$apiKey&campaign=$campaignId&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang";
$result = json_decode(@file_get_contents($url));
if ($result->redirect) {
  foreach($result->redirect->headers as $header) {
    header($header);
  }
  if ($result->redirect->content) {
     echo $result->redirect->content;
  }
}
?>

Код необходимо поставить в самое начало файла, иначе не будет происходить редиректа.

Как передавать адрес сайта в реферере, на котором стоит API?

Замените строку

$referrer = urlencode(@$_SERVER['HTTP_REFERER']);

на

$referrer = urlencode('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

Параметры запроса

  • api_key — ключ;
  • dummy_mode — при наличии этого параметра переход в статистику не добавляется;
  • group — идентификатор группы;
  • ip — ip пользователя;
  • ua — user-agent;
  • keyword — ключевик;
  • referer — реферер;
  • lang — язык браузера;
  • se_referer — реферер перехода с поисковика;
  • source — источник трафика;
  • charset — кодировка ключевика;
  • debug — показ отладочной информации

Содержание ответа

  • stream — информация по потоку. Внутри содержатся значения: id, group_id;
  • stream.id — id потока;
  • stream.group_id — id группы;
  • stream.url — URL потока;
  • redirect — информация о редиректе;
  • redirect.type — тип редиректа;
  • redirect.headers — заголовки редиректа;
  • redirect.content — содержимое страницы, если её редирект генерирует;
  • debug — отладочная информация;
  • execution_time — время выполнения скрипта

При выявлении бота передаются

  • bot_action.redirect — адрес для редиректа
  • bot_action.text — текст для показа
  • bot_action.status — статус страницы

Почему не работает фильтр уникальности по cookies?

Cookies не передаются через API, поэтому необходимо использовать фильтр «Уникальность по IP».

Как передать title в ключевик в дорвеях?

Сначала вам нужно выяснить откуда берется содержимое title. Обычно, за это отвечает какой-то макрос с именем KEYWORD или TITLE. Пропишите макрос в коде, где используется ключевик:

$keyword = urlencode('[TITLE]');

Запустите генерацию дорвея и проверьте, подставился ли ключевик.

Как сделать запрос к API из консоли?

Запускайте api.php через php-cgi

php-cgi -f /path/api.php action="get" api_key="api_key" campaign="campaign_id" ua="..." ip="..." keyword="..." referrer="..."

Пример:

php-cgi -f /path/api.php action="get" api_key="f1uh20efuh102euhf01uhef" campaign="123" ua="Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_11_2%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F49.0.2618.0+Safari%2F537.36" ip="6.6.6.6" keyword="keyword" referrer="http://referrer"

Как оставлять пользователя на сайте, где уже стоит код API?

Выберите в потоке действие «Показать текст» и оставьте пустое поле текста. При срабатывании потока, пользователь останется на сайте.