Rank::KeysSo - keys.so parser
KeysSo parser overview
Keys.so is a competitive intelligence tool. The service allows you to get a list of your site's competitors, see which queries they rank for in search, and which queries their ads are displayed for. The largest database of queries in the Russian-speaking segment is available, with over 80 million keywords.
A-Parser functionality allows you to save parsing settings for further use (presets), set up a parsing schedule, and much more. You can use automatic query multiplication, substitution of subqueries from files, enumeration of alphanumeric combinations and lists to get the maximum possible number of results.
Saving results is possible in the format and structure that you need, thanks to the built-in powerful Template Toolkit templating engine that allows you to apply additional logic to the results and output data in various formats, including JSON, SQL, and CSV.
Collected data
- Visibility rating in the Russian-speaking segment
- Rating by keyword coverage
- Number of pages in the TOP-50
- Search traffic (Estimated number of users from organic search per day)
- Number of pages in the search results
- Traffic per page
- Number of queries per page
- Performance evaluation (Percentage of keywords from the TOP50 occupying positions in the TOP5)
- Number of sites owned by the domain owner in Adsense, Analytics, Leadia, and Relap.io
- Number of subdomains owned by the domain owner
- Number of queries in the TOP-1, TOP-3, TOP-5, TOP-10, TOP-50
- Pages in organic search results (gets a link to the page and the number of keywords)
- List of competitors (link to the domain, number of common keywords, degree of domain similarity, Yandex traffic)
- Keywords (query, frequency, position)
For sites with contextual advertising:
- Contextual traffic (Estimated traffic from context without any targeting. The product of the exact frequency, the forecast CTR, divided by 30 days)
- Budget estimate (Budget estimate without any targeting. The product of the exact frequency, the forecast CTR, and the cost per click)
- Number of ads in context
- Number of queries in context
- Number of queries per ad
- Ads in context (Ad and number of queries)
- Competitors in context (Domain, number of common queries, total queries, number of ads)
- Site queries in context (Query, frequency, position, placement, click cost)
Use cases
- Getting visibility rating in the Russian-speaking segment, keyword coverage
- Getting traffic per page
- Getting the number of queries in the TOP-1, TOP-3, TOP-5, TOP-10, TOP-50
- Finding site competitors
- Getting a list of queries for which the site is ranked in search
- Getting contextual advertising of the site
- Getting competitors in context
- Collecting data on regional search results for Google and Yandex
Capabilities
- Selecting a search region for Google and Yandex
Queries
- The domain must be specified as a query, for example:
a-parser.com
Results
Query - a-parser.com, By vision in runet - 104606, By keys - 197798, Requests in top 50 - 1540, Search traf - 57
Result output options
A-Parser supports flexible result formatting thanks to the built-in Template Toolkit templating engine, which allows it to output results in any form, as well as in a structured form, such as CSV or JSON.
Outputting a list of competitors
Result format:
$comp_keys.format('$links, $total_keys, $similarity, $traff_y\n')
Example result:
http://youtube.com, 1360, 0.00, 8286326
http://habr.com, 1174, 0.04, 116283
http://vc.ru, 1172, 0.06, 40749
http://zen.yandex.ru, 923, 0.00, 5944772
http://spark.ru, 870, 0.33, 2062
http://zennolab.com, 828, 2.78, 216
http://web-data-extractor.net, 819, 35.11, 53
Outputting a list of competitors in CSV
Result format:
[%
FOREACH comp_keys;
tools.CSVline(links, total_keys, similarity, traff_y);
END;
%]
Example result:
http://vk.com,5316893,12.18,8682202
http://youla.ru,5222139,84.47,231703
http://moskva.tiu.ru,4812708,59.84,323103
http://youtube.com,4543041,8.27,8286326
http://moskva.regmarkets.ru,4106292,61.62,13983
http://ozon.ru,3783344,46.81,580266
Outputting a list of competitors in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.competitors = [];
FOREACH comp_keys;
item = {};
item.links = links;
item.total_keys = total_keys;
item.similarity = similarity;
item.traffic = traff_y;
data.competitors.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"query": "avito.ru",
"competitors": [
{
"traffic": "8682202",
"similarity": "12.18",
"total_keys": "5316893",
"links": "http://vk.com"
},
{
"traffic": "231703",
"similarity": "84.47",
"total_keys": "5222139",
"links": "http://youla.ru"
},
{
"traffic": "323103",
"similarity": "59.84",
"total_keys": "4812708",
"links": "http://moskva.tiu.ru"
}
]
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
Outputting a list of keywords
Result format:
$key_phrases.format('$req, $base_freq, $va_freq, $pos\n')
Example result:
a parser, 2870, 332, 1
a parser скачать торрент, 183, 181, 1
aparser, 435, 118, 1
a parser торрент, 285, 103, 1
а парсер, 423, 101, 1
a parser com, 221, 87, 1
парсер выдачи google, 66, 61, 1
массовый чекер позиций a parser, 53, 52, 1
Outputting a list of keywords in CSV
Result format:
[%
FORECH key_phrases;
tools.CSVline(req, base_freq, va_freq, pos);
END;
%]
Example result:
"авито",59415062,9034027,1
"авито москва",1782404,451582,1
"авито санкт петербург",634665,343183,1
avito,1207134,307012,1
"авито воронеж",629468,286035,1
Outputting a list of keywords in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.phrases = [];
FOREACH key_phrases;
item = {};
item.req = req;
item.base_freq = base_freq;
item.va_freq = va_freq;
item.pos = pos;
data.phrases.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"query": "avito.ru",
"phrases": [
{
"base_freq": "59415062",
"req": "авито",
"va_freq": "9034027",
"pos": "1"
},
{
"base_freq": "1782404",
"req": "авито москва",
"va_freq": "451582",
"pos": "1"
},
{
"base_freq": "634665",
"req": "авито санкт петербург",
"va_freq": "343183",
"pos": "1"
}
]
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
:::
Output of organic search results
Result format:
$organic_pages.format('$pages, $keys\n')
Example result:
http://a-parser.com/, 315
http://a-parser.com/wiki/parsers/, 115
http://a-parser.com/a-parser-for-e-commerce/, 56
http://a-parser.com/wiki/js-parsers/, 44
http://a-parser.com/wiki/html-emailextractor/, 40
http://a-parser.com/resources/21/, 39
http://a-parser.com/threads/1809/, 35
http://a-parser.com/threads/4253/, 32
Output of organic search results in CSV
Result format:
[%
FOREACH organic_page;
tools.CSVline(pages, keys);
END;
%]
Example result:
http://a-parser.com/, 315
http://a-parser.com/wiki/parsers/, 115
http://a-parser.com/a-parser-for-e-commerce/, 56
http://a-parser.com/wiki/js-parsers/, 44
http://a-parser.com/wiki/html-emailextractor/, 40
http://a-parser.com/resources/21/, 39
http://a-parser.com/threads/1809/, 35
http://a-parser.com/threads/4253/, 32
Output of organic search results in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.organic = [];
FOREACH organic_pages;
item = {};
item.pages = pages;
item.keys = keys;
data.organic.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"query": "avito.ru",
"organic": [
{
"keys": "4652",
"pages": "http://avito.ru/"
},
{
"keys": "4563",
"pages": "http://avito.ru/moskva/avtomobili"
},
{
"keys": "4484",
"pages": "http://avito.ru/moskva/kvartiry/sdam-ASgBAgICAUSSA8gQ"
}
]
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
Output of context ads
Result format:
$ads_context.format('$aheader, $atext, $acount\n')
Example result:
Ремонт ПК и Ноутбуков в Москве, на Выезде! С 2015 года на Авито – Бронзовый статус. Прием заявок 24/7! · Компьютеры & Ноутбуки. Планшеты & Смартфоны. Роутеры & WI - FI, 38658
Забронируйте номер на Авито. В поездку вместе с Авито, Гостиницы и отели - множество предложений специально для вас. Теперь на Авито., 20122
Найдите работу в городе Москва. На Авито Работа, Свежие вакансии в городе Москва. Авито - сервис объявлений №1 в России!, 20110
Output of context ads in CSV
Result format:
[%
FOREACH ads_context;
tools.CSVline(aheader, atext, acount);
END;
%]
Example result:
Ремонт ПК и Ноутбуков в Москве","на Выезде! С 2015 года на Авито – Бронзовый статус. Прием заявок 24/7! · Компьютеры & Ноутбуки. Планшеты & Смартфоны. Роутеры & WI - FI",38658
"Забронируйте номер на Авито. В поездку вместе с Авито","Гостиницы и отели - множество предложений специально для вас. Теперь на Авито.",20122
"Найдите работу в городе Москва. На Авито Работа","Свежие вакансии в городе Москва. Авито - сервис объявлений №1 в России!",20110
"Собаки на Авито. Купить или взять бесплатно.","Сотни тысяч объявлений. Совершайте выгодные сделки по всей России с помощью Авито!",17306
Output of context ads in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.ads = [];
FOREACH ads_context;
item = {};
item.header = aheader;
item.text = atext;
item.count = acount;
data.ads.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"ads": [
{
"count": "38658",
"text": "на Выезде! С 2015 года на Авито – Бронзовый статус. Прием заявок 24/7! · Компьютеры & Ноутбуки. Планшеты & Смартфоны. Роутеры & WI - FI",
"header": "Ремонт ПК и Ноутбуков в Москве"
},
{
"count": "20122",
"text": "Гостиницы и отели - множество предложений специально для вас. Теперь на Авито.",
"header": "Забронируйте номер на Авито. В поездку вместе с Авито"
},
{
"count": "20110",
"text": "Свежие вакансии в городе Москва. Авито - сервис объявлений №1 в России!",
"header": "Найдите работу в городе Москва. На Авито Работа"
}
],
"query": "avito.ru"
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
Output of context competitors
Result format:
$comp_context.format('$link, $common, $req, $ads\n')
Example result:
http://uslugi.yandex.ru, 340399, 11188812, 30632
http://superjob.ru, 180179, 885168, 19065
http://mvideo.ru, 174070, 2840150, 344731
http://pleer.ru, 166815, 2577993, 238284
http://ru.jobsora.com, 124103, 596184, 99781
http://citilink.ru, 114529, 1903350, 94937
http://goods.ru, 113373, 2684645, 328750
http://pokupki.market.yandex.ru, 81527, 2657498, 326255
Output of context competitors in CSV
Result format:
[%
FOREACH comp_context;
tools.CSVline(link, common, req, ads);
END;
%]
Example result:
http://uslugi.yandex.ru, 340399, 11188812, 30632
http://superjob.ru, 180179, 885168, 19065
http://mvideo.ru, 174070, 2840150, 344731
http://pleer.ru, 166815, 2577993, 238284
http://ru.jobsora.com, 124103, 596184, 99781
http://citilink.ru, 114529, 1903350, 94937
http://goods.ru, 113373, 2684645, 328750
http://pokupki.market.yandex.ru, 81527, 2657498, 326255
Output of context competitors in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.competitors = [];
FOREACH comp_context;
item = {};
item.link = link;
item.common = common;
item.req = req;
item.ads = ads;
data.competitors.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"query": "avito.ru",
"competitors": [
{
"ads": "30632",
"link": "http://uslugi.yandex.ru",
"req": "11188812",
"common": "340399"
},
{
"ads": "19065",
"link": "http://superjob.ru",
"req": "885168",
"common": "180179"
},
{
"ads": "344731",
"link": "http://mvideo.ru",
"req": "2840150",
"common": "174070"
},
]
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
Output of site queries in context
Result format:
$wreq_context.format('$request, $freq, $va_freq, $pos, $placement, $price\n')
Example result:
работа в челябинске, 202530, 40163, 3, Спец., 4
алгебра 8 класс дорофеев, 217307, 18467, 2, Гар., 2
far cry 3, 113266, 23218, 5, Гар., 3
работа в барнауле, 128775, 26402, 3, Спец., 4
гарри поттер и тайная комната фильм 2002, 36482, 30450, 2, Гар., 5
мазда 6, 554463, 25248, 6, Гар., 19
assassin s creed, 535915, 29419, 5, Гар., 5
авито рязань, 325994, 137938, 3, Гар., 13
Output of site queries in context in CSV
Result format:
[%
FOREACH wreq_context;
tools.CSVline(request, freq, va_freq, pos, placement, price);
END;
%]
Example result:
"работа в челябинске",202530,40163,3,"Спец.",4
"алгебра 8 класс дорофеев",217307,18467,2,"Гар.",2
"far cry 3",113266,23218,5,"Гар.",3
"работа в барнауле",128775,26402,3,"Спец.",4
"гарри поттер и тайная комната фильм 2002",36482,30450,2,"Гар.",5
"мазда 6",554463,25248,6,"Гар.",19
"assassin s creed",535915,29419,5,"Гар.",5
"авито рязань",325994,137938,3,"Гар.",13
"авито рязанская область",72077,19586,2,"Гар.",20
Output of site queries in context in JSON
Initial text
[% data = {} %]
Final text
[% data.json %]
Result format:
[%
data.query = query;
data.wreq = [];
FOREACH wreq_context;
item = {};
item.request = request;
item.freq = freq;
item.va_freq = va_freq;
item.pos = pos;
item.placement = placement;
item.price = price;
data.wreq.push(item);
END;
result = {};
result = data;
%]
Example result:
{
"query": "avito.ru",
"wreq": [
{
"request": "работа в челябинске",
"placement": "Спец.",
"freq": "202530",
"va_freq": "40163",
"price": "4",
"pos": "3"
},
{
"request": "алгебра 8 класс дорофеев",
"placement": "Гар.",
"freq": "217307",
"va_freq": "18467",
"price": "2",
"pos": "2"
},
{
"request": "far cry 3",
"placement": "Гар.",
"freq": "113266",
"va_freq": "23218",
"price": "3",
"pos": "5"
}
]
}
To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".
Possible settings
Parameter | Default value | Description |
---|---|---|
Search DB | Yandex Moscow | Selection of search base |