Как заработать на сайте о Linux. Ключи, скриншоты и программное обеспечение
Разговор на эту тему начался в комментариях к статье «Очень нужны С\С++ разработчики» и чтобы не разводить там оффтопик перенесу несколько своих мыслей на этот счет в отдельный пост.
Итак, можно ли заработать на сайте о Линуксе? Можно, но только не на контекстной рекламе.
Не считаю себя крутым MFA-шником (просьба не путать с Ministry of Foreign Affairs), но примерный ориентир заработка я могу назвать. Каждая тысяча уникальных посетителей будет приносить в AdSense где-то от 0,6 до 1,0 доллара в сутки. Таким образом, если вам посчастливится создать сайт, который будет посещать 10 тыс. линуксоидов каждый день, ваш максимальный доход от контекстной рекламы AdSense составит приблизительно 12 тыс. рублей в месяц. Согласитесь, проще пойти двор мести. Журналисты The H, например, так и сделали.
Если кто-то считает, что можно просто поднять количество посещений, например, до 50 тыс., то таким энтузиастам хочу напомнить, что старейший и самый посещаемый сайт о Линуксе имеет «всего» около 30-35 тыс. уникальных посетителей в день. Это я о нашем любимом Оупеннете, конечно. Это потолок посещаемости по данной тематике.
Кто-то может подумать, что я отрицаю в принципе возможность заработка на этой теме. Вовсе нет, я только о контекстной рекламе от скупердяев из американской фирмы Гугль. Если взять тот же Оупеннет, ознакомиться с прейскурантом, убедиться, что все рекламные места раскуплены и проделать соответствующие калькуляции, то получается умопомрачительная сумма. ;) Я досчитал до ¼ млн в месяц, а потом сбился со счета от волнения. ;)
Ну и напоследок история из жизни...
История из жизни
Когда почтальон принес первый чек из Google, я открыл конверт и увидел сумму, то моментально догадался, что магнатом Адсенса мне не стать. А потом еще больше охренел, когда узнал, что другие-то вполне успешно зарабатывают. Некоторые — от килобакса в день и выше. Мне стало интересно: что я делаю не так?
Чтобы ответить на этот вопрос, я написал программку MFA Analizer, которая учитывает три фактора: количество показов, конкуренцию и стоимость клика. Программа отсеивает мусор и затем сортирует ключевые слова в порядке привлекательности в плане заработка по интегральной оценке. Уровень отсеивания мусора подбирается опытным путем. Логично его установить на уровне рентабельности.
Ну так вот, написал программку и прогнал для теста коммерческую тематику — одежду. Почти все ключи однозначно признаны потенциально выгодными. См. скриншот, картинка кликабельна.
Потом я загрузил ключи, связанные с Линуксом. Ничто не предвещало беды...
Как вам, например, ключ «red hat»? 10 долларов за клик. По новому курсу, 400 рублей падает в копилку вебмастера каждый раз, когда кто-то кликает по баннеру. Как бы неплохо. Еще Гугль берет комиссию, но все же... А потом посмотрите на уровень конкуренции — 0,01. Это значит, что вероятность того, что кликнут по объявлению именно на вашем сайте практически нулевая.
В общем, нажимаю кнопку фильтрации и получаю список потенциально доходных ключей по Линуксу. Вот как он выглядит:
На этой оптимистичной ноте позвольте и откланяться.
Комментарии
Чингачгук
21 октября, 2014 - 19:39
Рекламщик хуже говна.
Чингачгук
25 октября, 2014 - 00:11
На айтишниках много не заработаешь, особенно на Российских айтишниках)
w-495
26 октября, 2014 - 12:14
Но ведь хабру это как-то удается?
w-495
26 октября, 2014 - 01:58
Меня немного обижает внешний вид окошек)
pomodor
27 октября, 2014 - 13:49
А что с ними не так? Вы смысле, обижает, что это Вантуз? Так в Debian была старая версия Mono и кнопки, которые должны быть в правой части окна, оказались вне формы. Глюки-с.
В Убуке немного лучше, но все равно кнопки уехали, а для столбцов не работает resize.
Если речь о некрасивом дизайне, то могу ответить, что программа написана за 15 минут для проверки гипотезы и дальнейшее использование не предполагалось.
w-495
26 октября, 2014 - 12:21
+ Можно попросить исходники, (ну или бинарник) MFA Analizer? В открытых репах не нашел (
+ Была бы интересной статья про него. Я понимаю, что, возможно, программуленька простенькая. Но я вот сходу не представляю как такое написать.
pomodor
27 октября, 2014 - 14:03
Да исходник-то можно, но я подозреваю, что Вы переоцениваете возможности программы. Она не собирает ключи сама, а использует данные, предоставленные AdWords. MFA-шники собирают ключи, количество просмотров и конкуренцию и потом колдуют над ними в Excel или Calc. Сначала сортируется первая колонка и отсеивается мусор, потом вторая, потом третья, из остатка выбираются самые привлекательные ключи. Я пытался сделать то же самое в Calc, но задолбался читать, как удалять строки по условию, суммировать столбцы и решил, что быстрее решить задачу без Calc.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.ComponentModel;
namespace Mfal
{
public enum columnsDef : int
{
Keyword = 1,
Views = 3,
Competition = 4,
Price = 5
}
public partial class MainForm : Form
{
private Queue sourceRows;
public MainForm()
{
InitializeComponent();
sourceRows = new Queue();
}
void MenuFileOpenClick(object sender, EventArgs e)
{
OpenSourceFile();
KeywordsView.Focus();
}
private void OpenSourceFile()
{
OpenFileDialog of = new OpenFileDialog();
of.Filter = "Google AdWords CSV file|*.csv";
if (of.ShowDialog() != DialogResult.OK) {
MessageBox.Show("Ошибка открытия файла " + of.FileName, «Ой, что-то не так», MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string file = File.ReadAllText(of.FileName);
KeywordsView.Rows.Clear();
string[] lines = file.Split('\n');
int lineNum = 0;
foreach (string line in lines)
{
if (line == "" || lineNum++ == 0) {
continue;
}
string[] cols = line.Split('\t');
string cKeyword = cols[(int)columnsDef.Keyword];
string tempViews = cols[(int)columnsDef.Views];
string tempCompetition = cols[(int)columnsDef.Competition].Trim('"');
string tempPrice = cols[(int)columnsDef.Price].Trim('"');
if (tempViews == "" || tempCompetition == "" || tempPrice == "") {
continue;
}
int cViews = int.Parse(tempViews);
float cCompetition = float.Parse(tempCompetition);
float cPrice = float.Parse(tempPrice);
string s = "";
foreach (string c in cols)
{
s += "["+c+"]";
}
KeywordsView.Rows.Add(cKeyword, cViews, cCompetition, cPrice);
}
KeywordsView.Sort(KeywordsView.Columns[2],ListSortDirection.Descending);
foreach (DataGridViewRow row in KeywordsView.Rows)
{
sourceRows.Enqueue(row);
}
}
void MainFormLoad(object sender, EventArgs e)
{
}
void ButtonSearchKeywordsClick(object sender, EventArgs e)
{
SearchKeywords();
KeywordsView.Focus();
}
private void SearchKeywords()
{
int minViews = int.Parse(inputViews.Text);
float minCompetition = float.Parse(inputCompetition.Text);
float minPrice = float.Parse(inputPrice.Text);
HashSet rows = new HashSet();
// Фильтруем по количеству просмотров
foreach (DataGridViewRow row in KeywordsView.Rows)
{
int nViews = (int)row.Cells[1].Value;
if (nViews < minViews)
{
rows.Add(row);
}
}
// Фильтруем по конкуренции
foreach (DataGridViewRow row in KeywordsView.Rows)
{
float nCompetition = (float)row.Cells[2].Value;
if (nCompetition < minCompetition)
{
rows.Add(row);
}
}
// Фильтруем по цене
foreach (DataGridViewRow row in KeywordsView.Rows)
{
float nPrice = (float)row.Cells[3].Value;
if (nPrice < minPrice)
{
rows.Add(row);
}
}
foreach (DataGridViewRow row in rows)
{
KeywordsView.Rows.Remove(row);
}
}
void RateViewsAndPriceClick(object sender, EventArgs e)
{
RateViewsAndPrice();
KeywordsView.Focus();
}
private void RateViewsAndPrice()
{
for (int i = 0; i < KeywordsView.Rows.Count; i++)
{
int nViews = (int)KeywordsView.Rows[i].Cells[1].Value;
float nPrice = (float)KeywordsView.Rows[i].Cells[3].Value;
KeywordsView.Rows[i].Cells[4].Value = Math.Round((float) nViews * nPrice);
}
KeywordsView.Sort(KeywordsView.Columns[4],ListSortDirection.Descending);
}
void RateIntegralClick(object sender, EventArgs e)
{
RateIntegral();
KeywordsView.Focus();
}
private void RateIntegral()
{
for (int i = 0; i < KeywordsView.Rows.Count; i++)
{
int nViews = (int)KeywordsView.Rows[i].Cells[1].Value;
float nCompetition = (float)KeywordsView.Rows[i].Cells[2].Value;
float nPrice = (float)KeywordsView.Rows[i].Cells[3].Value;
KeywordsView.Rows[i].Cells[4].Value = Math.Round((float) nViews * nCompetition * nPrice);
}
KeywordsView.Sort(KeywordsView.Columns[4],ListSortDirection.Descending);
}
void ButtonResetFilterClick(object sender, EventArgs e)
{
KeywordsView.Rows.Clear();
foreach (DataGridViewRow row in sourceRows)
{
KeywordsView.Rows.Add(row);
}
}
void MenuKeywordsToBufferClick(object sender, EventArgs e)
{
if (KeywordsView.SelectedRows.Count == 0)
{
MessageBox.Show("Нет выделенных ключей для копирования в буфер.","Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string keys = "";
foreach (DataGridViewRow row in KeywordsView.SelectedRows)
{
keys += row.Cells[0].Value + "\n";
}
keys = keys.TrimEnd('\n');
Clipboard.SetText(keys);
}
}
}
sudo
8 декабря, 2014 - 09:37
На вечных ссылках можно больше заработать, благо на компьютерную тематику раскупают очень хорошо.
pomodor
8 декабря, 2014 - 15:53
Можно. И на заказных обзорах. Миллион возможностей. Поэтому и написал:
Комментировать