Прединсталляторы – малоизвестный класс программ, используемых в рекламных
технологиях. Программы могут использоваться для создания большого количества
показов рекламных баннеров или вебстраниц, формирования рекламного трафика,
увеличения рентабельности вебсайтов с бесплатным программным обеспечением – freeware.
Прединсталляторы могут использовать разные алгоритмы работы –
однократные, многократные, активные и пассивные.
1. Прединсталляторы
Это программы, исполняемые до инсталляции программного обеспечения.
Архивы бесплатного программного обеспечения идут на различные ухищрения,
чтобы получить компенсацию за расходы на поддержание вебсервера и сервиса. Т.к.
программы распространяются бесплатно, то зарабатывать средства приходится за
счет размещения рекламы спонсоров. Прединсталляторы – тот класс программ,
которые могут существенно облегчить финансовые проблемы владельцев
freeware
архивов.
Обычно, скачанное пользователем бесплатное или демонстрационное
программное обеспечение - файл, имеет имя, отличное от SETUP,
INSTALL,
RUN
или START.
Чаще всего сейчас в имени файла используется сокращенное название программы
(например, http://pipa.send-sms.ru/get.php/pipa.exe).
Это позволяет вместе с архивом программы представить пользователю дополнительный
EXE
файл с одним из таких названий (setup.exe
например).
В подавляющем количестве случаев процесс инсталляции будет начат
пользователем с запуска именно этого (setup.exe)
файла. При этом в файл (setup.exe)
могут быть включены следующие функции:
- проверка версии операционной системы;
-
показ рекламной информации или подключение рекламного сервиса;
-
запуск инсталляции основной программы;
-
удаление прединсталлятора из памяти.
2. На чем программировать
Если посмотреть на
статистику счетчиков http://extreme-dm.com
на любом из вебсайтов, то можно увидеть примерно такое распределение версий ОС у
посетителей:
Видно, что наибольший
процент посетителей используют ОС Windows 2000 или Windows XP. Поэтому будем ориентироваться на
структуру реестра именно этих OC.
В данном документе описан процесс разработки отдельных процедур программы
для Интернет-рекламы.
3. Структура программы
Программа прединсталлятор должна быть компактной, быстро исполняться,
отрабатывать рекламный сервис, запускать инсталляцию основной программы и
завершать свою работу.
В нашем примере программа-прединсталлятор будет состоять из прозрачной
формы Form1 (Border Style
= 0, Appearance = 0)
4. Подключение рекламного сервиса
Рекламный сервис может выполняться разными способами:
- обязательным однократным или многократным посещением web
страницы разработчика или спонсора;
-
размещением рекламного плаката в качестве wallpapers;
-
записью ссылки на web сайт спонсора или разработчика в Favorites;
-
каким-либо иным способом.
Внимание! В любом случае пользователь
должен быть предупрежден об особенностях сервиса, включенного в программное
обеспечение. Производить или не производить инсталляцию – выбор пользователя.
Рассмотрим вариант, когда программа-прединсталлятор устанавливает в качестве
стартовой страницы для Internet
Explorer
страницу спонсора.
Для этого необходимо выполнить запись в реестр Windows.
Это может быть проделано непосредственно из программы на Delphi
или с помощью Java-скрипта. Достаточно создать на диске
текстовый файл Java-скрипта
и записать в него код, а затем запустить из Delphi
программы.
Листинг для записи в текстовый файл из программы на Delphi
– в файле dlpp1.zip
Текст Java-скрипта (всего 3 строчки):
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Popup("Стартовая страница");
WSHShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page", "http://www.privet.com");
Напишем Delphi-код для
записи JS
скрипта в
файл
set-page.js
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
AssignFile(f, 'c:\set-page.js');
Rewrite(f); // Создать и открыть файл
writeln(f, 'var WSHShell = WScript.CreateObject'+chr(40)+chr(34)+
'WScript.Shell'+chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
writeln(f, 'WSHShell.Popup'+chr(40)+chr(34)+'Стартовая страница'+
chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
writeln(f, 'WSHShell.RegWrite'+chr(40)+chr(34)+
'HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page'+chr(34)+',
'+chr(34)+'http://www.privet.com'+chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
CloseFile(f); // Закрыть файл
ShellExecute(Handle, 'open', 'c:\set-page.js', nil, nil, SW_HIDE); // Выполнить команду. Запустить скрипт
end;
Здесь ‘ +
chr(34) + ‘ – код
для записи кавычек в файл Java-скрипта.
Аналогично – для скобок и точки с запятой - '+chr(34)+chr(41)+chr(59)’.
ASCII-коды
можно посмотреть на
http://www.lookuptables.com/
А для работы с
ShellExecute необходимо добавить объявление (выделено красным):
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI;При выполнении такой программы-инсталлятора в качестве стартовой
страницы броузера
Internet Explorer
в Windows 2000 и Windows XP будет
установлен адрес вебсайта
www.privet.comПолный проект смотрите в файле dlpp2.zip
Здесь приведен самый простой вариант программы. В него надо
добавить всего одну строку кода – запуск инсталляции основной программы. Это
можно сделать просто включив в программу еще одну строку – например
для инсталляции приведенной выше программы PIPA.EXE
:
ShellExecute(Handle, 'open', ' pipa.exe', nil, nil, SW_HIDE);
Кроме того, следует удалить с диска файл с Java-скриптом, как уже
ненужный после начала инсталляции
ShellExecute(Handle, 'open', ' kill c:\set-page.js', nil, nil, SW_HIDE);
Это самый простой образец программы-инсталлятора. Эффективность
работы его можно значительно повысить, если произвести некоторые
доработки – например, файлы конфигурации. Тогда программа-прединсталлятор
станет более универсальной, подходящей для широкого использования. Можно
разработать программу для создания, редактирования и кодирования файлов
конфигурации прединсталлятора. Т.е. разработать новый коммерческий продукт.
Программа-инсталлятор имеет удивительную эффективность для создания трафика – с
самых «банальных» web-сайтов с посещаемостью
300-600 человек в день скачивается 100-150 экземпляров программ минимум. Можете
представить сколько посещений вебсайта спонсора может обеспечить прединсталлятор.
Эффективность программы-прединсталлятора можно повысить производя
так же и запись в
Favorites
броузера.
Ничего сложного в этом нет. Каждая запись в Favorites («Избранное»)
– это специальный файл в особом каталоге на диске
C:
5. Запись в Favorites
Для этого необходимо работать с реестром Windows.
Команды для работы с реестром.
function ReadString(const Name: String): String;
Возвращает строку значения параметра Name текущего ключа. При ошибке
чтения генерируется исключение и возвращенное значение является ошибочным.
Пример:
uses Registry;
.
.
.
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\My Registry\',true);
Edit1.Text:= Reg.ReadString('My');
Reg.CloseKey;
Reg.Destroy;
Продемонстрируем функцию для чтения значения ключа реестра, в
котором выше установили адрес стартовой страницы Internet Explorer (на форму
Form1 нужно
добавить кнопку Button1):
procedure TForm1.Button1Click(Sender: TObject);
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Microsoft\Internet Explorer\Main\',true);
Form1.Caption:= '' + Reg.ReadString('Start Page');
Reg.CloseKey;
Reg.Destroy;
end;
Для работы с реестром необходимо добавить объявление (выделено
красным):
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Registry, ShellAPI;
Полный Delphi-проект с этого этапа разработки смотрите в файле
dlpp3.zip
Рассмотрим
Delphi код для создания записи в Favorites («Избранное»)
Пример для записи в «Избранное» Internet Explorer (папка Favorites) можно
посмотреть здесь
http://delphiworld.narod.ru/base/webbrowser_add_to_fav.html.
Напишем более простой код. Добавим его в процедуру
TForm1.Button1Click
procedure TForm1.Button1Click(Sender: TObject);
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\',true);
Form1.Caption:= '' + Reg.ReadString('Favorites') + '\' + 'Zagranica.url';
ee:= Reg.ReadString('Favorites') + '\' + 'Hello.url';
Reg.CloseKey;
Reg.Destroy;
Form1.Caption:= ee;
//Создать новую запись в Favorites
//C:\Documents and Settings\Administrator\Favorites
AssignFile(f, ee);
Rewrite(f); // Создать и открыть файл
writeln(f, '[DEFAULT]');
writeln(f, 'BASEURL= http://www.geocities.com/aboutsoft/');
writeln(f, '[InternetShortcut]');
writeln(f, 'URL= http://www.geocities.com/aboutsoft/');
writeln(f, 'Modified=70037C581883C001A1');
CloseFile(f); // Закрыть файл
end;
Полный Delphi проект программы смотрите
в файле
dlpp4.zip
В принципе, здесь создан еще один коммерчески ориентированный
продукт. Представьте себе веб-сайт-каталог
тематических ссылок. Например
список ссылок на mp3
музыкальные сайты. Используя приведенный выше
VB код, можно создать такой каталог тематических ссылок на компьютере,
в Favorites.
Создается вложенная папка, например, «MP3
ссылки». И в неё помещаются записи с ссылками на тщательно проверенные каталоги
MP3 музыки. Программа для
создания таких каталогов – вполне коммерческий продукт. Новый продукт. Эта ниша
на рынке еще не занята. Кроме того, программа может быть немного
усовершенствована и получать обновления списка вебсайтов с вебстраницы
разработчика. Технически, это очень просто.
6. Wallpapers – рекламные обои
В предыдущем руководстве
программиста показано, что обои (оформление рабочего стола) тоже могут
использоваться в рекламных технологиях
procedure TForm1.Button1Click(Sender: TObject);
var
Picture: TPicture;
Desktop: TCanvas;
X, Y: Integer;
begin
// Objekte erstellen
// create objects
Picture := TPicture.Create;
Desktop := TCanvas.Create;
// Bild laden
// load bitmap
Picture.LoadFromFile('bitmap1.bmp');
// Geratekontex vom Desktop ermitteln
// get DC of desktop
Desktop.Handle := GetWindowDC(0);
// Position des Bildes
// position of bitmap
X := 100;
Y := 100;
// Bild zeichnen
// draw bitmap
Desktop.Draw(X, Y, Picture.Graphic);
// Geratekontex freigeben
ReleaseDC(0, Desktop.Handle);
// Objekte freigeben
// release objects
Picture.Free;
Desktop.Free;
end;
Пример можно посмотреть здесь
http://delphiworld.narod.ru/base/bmp_to_desktop.html
Обратите внимание, что графический файл для Desktop должен быть в
формате .bmp
7. Об эффективности
Эффективность использования программ-прединсталляторов чрезвычайно
высока. Свыше 70% программ инсталлируются сразу после скачивания и без всякого
анализа состава программного пакета. В лучшем случае читается файл ReadMe.txt
Рекламную эффективность программ-прединсталлятров можно значительно
увеличить используя специальный инсталлируемый на компьютер модуль для загрузки
рекламы. В таком случае программа превращается в разновидность Adware и может
вызвать у пользователей негативную реакцию. Тем не менее, рынок такого
программного обеспечения развит и спонсорам предлагаются программные модули для
загрузки рекламы по цене от 300$
Обращаю Ваше внимание, что потребители (пользователи) программного обеспечения
должны быть предупреждены о том, что условием использования программных
продуктов будет просмотр рекламной информации спонсора.
Руководство написано для широкого круга лиц – программистов,
администраторов, пользователей бесплатного ПО.
ee@oflameron.ru
Программист на Visual Basic, Delphi, Assembler, Java, PHP.
Автор игры Oflameron.
Автор руководств для программистов на
Visual Basic,
Delphi,
Java,
PHP
и для начинающих web-дизайнеров.
Лицензионное соглашение. Некоммерческое использование данного
руководства и прилагаемых кодов – совершенно бесплатно. Коммерческое
использование возможно только с согласия автора.
Исходники
здесь.
|