Паспорт

Ссылки
Описание модуля Визард 
Описание системы 
О системе и её преимуществах
Интерфейс оптимизатора
Интерфейс вебмастера
Извещения
Полезные советы
Sape Rank (SR)
Вывод средств на Visa QIWI Wallet 
Вывод денежных средств из SAPE на Ваш кошелек 
Время, необходимое для вывода денежных средств
Причина недельной задержки первой выплаты
Исключения при задержке первой выплаты, если средства нужны срочно
ЮMoney - Счет в системе заблокирован. Данная операция для счета запрещена.
Зарабатывайте вместе с Serpzilla.
Earn with SerpZilla.
Вопросы по выводу денег из SAPE на кошелек 
Для чего нужна эта недельная задержка для первой выплаты?
Бывают ли какие-то исключения по задержке первой выплаты? Мне очень нужны деньги прямо сейчас!
Когда будет оплачена моя заявка на вывод?
Банковская карта 
Вывод средств в GetUniq 
Словарь SAPE (термины и определения) 
Если помимо обычных ссылок Вы хотите продавать ссылки из контента (контекстные ссылки) 
Активация подарочных сертификатов 
Активация подарочных сертификатов
Вопросы Оптимизатора 
Сквозные ссылки
Поиск контекстных ссылок
Sape Rank (SR)
Ошибки при работе с интерфейсом SAPE
Как начать работу с SAPE? (пошаговая инструкция для начинающего оптимизатора)
Финансовые вопросы
Рассылка уведомлений
Изменение кошелька, почты, пароля, телефона
Опечатки во время регистрации
Вопрос по Проекту
Перенос проекта/площадки на другой аккаунт
Вопросы Вебмастера 
Сквозные ссылки
Sape Rank (SR)
Вопрос по сайту (площадке), который Вы намерены добавить в систему
Вопрос по сайту (площадке), который уже есть в системе
Изменение кошелька, почты, пароля, телефона
Сайт не прошел модерацию
Финансовые вопросы
Нет начислений по площадке, ссылки в статусе ERROR
Регистрационные данные и договора
Сквозные ссылки 
Сквозные ссылки и их преимущества для вебмастеров
Сквозные ссылки и их преимущества для оптимизаторов
Подключение и работа со сквозными ссылками для вебмастеров
Подключение и работа со сквозными ссылками для оптимизаторов
Задать вопрос о сквозных ссылках
API XML-RPC 
О нашем API
Смена способа авторизации - переход на токены
Расширенный список категорий и поиск по языкам страниц
Задать вопрос
Задать вопроc (FAQ изучен, но ни один из типовых вопросов не подошел) 
Финансовые вопросы 
Как пополнить баланс?
По каким правилам начисляются деньги мне на аккаунт?
Проблемы с зачислением средств на баланс
Партнерская программа
У нашей компании с начала следующего отчетного периода (года) меняется форма налогообложения. Должны ли мы вас уведомить об этом?
Вопросы по отчетным документам
Вопросы по пополнению баланса банковской картой
Дополнительные условия партнерской программы
Платежный сервис PayMaster
English support 
Quick start in Sape
Adding URLs to the project
Addition of texts
Purchase
Search results
Work with applications
Contextual links
Ask us anything (didn't find answer for my question)
How to change your password?
How to change your email? (for publishers)
How to change your email? (for advertisers)
Transfer sites and projects
Плагины 
Установка кода на CMS Wordpress с помощью плагина
Установка кода на CMS Joomla с помощью плагина
Установка кода на CMS DLE с помощью плагина
Установка кода на CMS Drupal с помощью плагина
Акции и промокоды 
Быстрые ответы на часто задаваемые вопросы 
Документы
Пополнение баланса
Вопросы от юридических лиц
Вывод средств
Вопросы по сайтам
Покупка ссылок
Проблемы с получением писем или SMS
Почему расторгнут договор?
Как у вас можно заработать?
Ограничение по длине наименования услуги в веб-версии приложения "Мой налог"
Почему не начисляются деньги по партнерской программе?
Когда будет перенесен проект?
Как изменить налоговый статус аккаунта?
Как перенести деньги на другой аккаунт?
Не зачислились деньги по акции приведи друга
На что заблокированы деньги на балансе?
Почему на балансе доступно 0?
Можно ли предоставить ограниченный доступ к аккаунту?

PR

Статьи

Wizard

Аудит

Обучение

Rtb

Traffic

Repometr

Справка - Ссылки

Вопрос по сайту (площадке), который Вы намерены добавить в систему

все пункты уровня
свернуть пункты уровня
Инструкции по установке кода Sape на различные платформы (PHP, Perl и др.) и движки (WordPress, DLE, Joomla и др.)
Возникла ошибка при выполнении запроса.
Повторить  Закрыть
 
 
все пункты уровня
свернуть пункты уровня
Установка кода на сайт с поддержкой ASP.NET
Возникла ошибка при выполнении запроса.
Повторить  Закрыть
 
 

Установка кода на сайт с поддержкой ASP.NET

Простейшая установка

1. Для начала выполните пункты 1-2-3 для хостинга с поддержкой PHP отсюда.

2. Откройте файл web.config и внесите в него следующие изменения:    

  • В ветку configuration/configSections добавьте следующую запись:        
<sectionGroup name="effetto.Sape">
	<section name="SapeConfig"
		type="effetto.Sape.SapeConfigSection, SAPE"
		allowLocation="true"
		requirePermission="false" 
		allowDefinition="Everywhere"/>
	</sectionGroup>
  • В ветку configuration/system.web/pages/controls добавьте следующую запись:
<add tagPrefix="efe" namespace="effetto.Sape" assembly="SAPE"/>
  • В корень ветки configuration добавьте следующую запись:
<effetto.Sape>
	<SapeConfig UserId="877009c2f0dc4fd8a4e5c48d21e5fce5">
  		<DefaultDocuments>
			<add Name="Default.aspx" />
  		</DefaultDocuments>
	</SapeConfig>
</effetto.Sape>

3. В том месте страницы, где вы хотите выводить ссылки, разместите следующий код:

<efe:SapeLinks runat="server"/>

Внимание! Среда Visual Studio может автоматически вставить ID контролу со словом SapeLinks, - обязательно удалите его.

4. (опционально) Фрагмент страницы, в котором вы хотите отображать контекстые ссылки поместите внутри следующей конструкции:

<efe:SapeContext runat="server">
	<Content>
  		Фрагмент страницы под контекст
	</Content>
</efe:SapeContext>

 

Установка нескольких блоков вывода ссылок на одной странице

1. Разместите в местах страницы, где вы хотите выводить ссылки следующий код следующего вида:

<efe:SapeLinks runat="server" Capacity="3" Priority="10" />

Где Capacity – число ссылок, Priority - приоритет блока в порядке обработки блоков, большее значение о значение обеспечивает предпочтение по наполнению ссылками.

Пример:
На странице имеется два блока ссылок:

<efe:SapeLinks runat="server" Capacity="3" Priority="20" />
<efe:SapeLinks runat="server" Capacity="5" Priority="10" />

И на странице получено к размещению 7 ссылок. Тогда в первую очередь будет заполнен блок с приоритетом 20, в него будет помещено 3 первых ссылки, во вторую очередь будет заполнен блок с приоритетом 10, в него поместятся оставшиеся 4, и останется одно свободное место во втором блоке.

Внимание!
Указанный способ настройки влияет только на размещение ссылок, манипулировать числом продаваемых ссылок возможно только в интерфейсе системы SAPE. При превышении числа проданных ссылок над суммой чисел Capacity на странице будут размещены только первые n ссылок, где n – сумма Capacity всех блоков SapeLinks.

Максимальное число ссылок в одном блоке равно 255, если число ссылок не задано оно равняется максимально возможному числу ссылок к размещению, то есть 255. Приоритет Priority по умолчанию равняется 0. Указанные ниже две строки эквивалентны:

<efe:SapeLinks runat="server" Capacity="255" Priority="0" />
<efe:SapeLinks runat="server" />

Ввиду особенностей контекстных ссылок возможно размещение любого числа блоков размещения контекстных ссылок на странице, при этом не требуется указания дополнительных параметров.

 

Детальная настройка системы, подробное описание параметров

Максимально возможный раздел конфигурирования системы в файле конфигурации web.config выглядит следующим образом.

<effetto.Sape>
	<SapeConfig UserId="877009c2f0dc4fd8a4e5c48d21e5fce5"
		CacheTimeout="60"
		CacheInSQL="true"
		ConnectionStringName=""
		SystemId="47474747-4747-4747-4747-474747474747"
		ExpireTimeout="600"
		Host=""
		UrlAnalyzer="true"
		QueryAnalyzer="true"
		QueryFilter="false"
		QueryParameters=""
		IgnoreCase="true"
		RussianNormalizer="true"
		ForceCheckCode="true"
		<DefaultDocuments>
			<add Name="документ1" />
			<add Name="документ2" />
		</DefaultDocuments>
	</SapeConfig>
</effetto.Sape>

CacheTimeout - время в минутах, которое информация о купленных ссылках будет находиться в кеше системы до следующего обновления с сервера системы SAPE, не менее 10 минут. По умолчанию 30.
CacheInSQL – хранить ли кеш в базе MS SQL. Если истинно, то необходимо в параметре ConnectionStringName указать имя строки соединения. Если планируется совместное использование хранилища более чем одной системой, необходимо также задать параметр SystemId – типа GUID. По умолчанию false.
ConnectionStringName – Имя строки соединения для подключения к хранилищу кеша в базе MS SQL. Сами строки соединения необходимо разместить в разделе configuration / connectionStrings например так:

<add
name="SapeConnectionString"
connectionString="
	data source=localhost;
	Integrated ecurity=True;
	database=sape"/>

тогда параметр ConnectionStringName следует установить равным "SapeConnectionString".
SystemId – указывается при совместном использовании нескольких систем с одной базой. Сгенерировать GUID можно, например, в Visual Studio (Tools->Create GUID) или на сайте типа http://www.guidgenerator.com/.
ExpireTimeout – период, в течение которого невостребованная информация остается в базе. По истечении таймаута информация из кеша удаляется и более не запрашивается. По умолчанию 600.
Host – позволяет явно указать параметр хоста, для которого будут отображаться ссылки, даже если хост в запросе пользователя указан другой. Для сайтов с несколькими хостами оставьте этот параметр неуказанным или пустым. Параметр указывается без протокола, например «sape.ru».
UrlAnalyzer – параметр указывает, применять или нет систему анализа URL. Если false, то анализ не применяется и URL запроса должен в точности соответствовать URL ссылки, включая страницы по умолчанию, слеши директорий и т.д. Если true то производится анализ документов по умолчанию, завершающих слешей и т.д. По умолчанию параметр равен true. Например для выключенного параметра указанные ниже строки будут различными URL, а для включенного – эквивалентными:
          /Folder/Default.aspx?Id=47
          /Folder/?Id=47
          /Folder?Id=47

QueryAnalyzer – параметр указывает, применять или нет систему анализа строки запроса. Если false, то анализ не применяется и порядок параметров URL страницы должен строго соответствовать порядку параметров URL ссылки в системе SAPE. Если true, то применяется анализ параметров. Анализатор параметров так же отсекает различный мусор из стандартного представления строки параметров, если у вас используется особая система передачи параметров, то отключите данную опцию.
По умолчанию параметр равен true. Параметр анализируется только при UrlAnalyzer =”true”. Например следующие строки будут характеризовать различные URL при выключенном параметре и один – при включенном:
         /Default.aspx?Id=47&Author=User
         /Default.aspx?Author=User&Id=47&
         /?Author=User&Id=47
         /Default.aspx?Author=User&Id=47&34534sdfr

QueryFilter – параметр указывает, применять или нет систему предопределенных параметров. Если false – то все параметры URL считаются значимыми. Если true – то значимые параметры следует перечислить в параметр QueryParameters через запятую, будут анализироватьс ятолко указанные параметры. По умолчанию false. При QueryParameters=”Id, Author” следующие строки будут восприняты как идентичные URL при включенном параметре, и как различные – при выключенном:
         /Default.aspx?Id=47&Author=User
         /Default.aspx?Id=47&Author=User&SEOCheck=qwerty

Указанную опцию следует включать только если вам заведомо известны все параметры, которые использует ваша страница / сайт. Данная опция позволяет ссылкам не исчезать при появлении неизвестных параметров, защищая таким образом от обнаружения факта автоматического размещения ссылок.

QueryParameters – строковый параметр, перечисляющий все используемые get параметры, при включенной опции QueryFilter неуказанные параметры не будут восприниматься системой.

IgnoreCase – параметр указывает, учитывать или нет при сравнениях регистр букв (для имен файлов и значений параметров). По умолчанию false.

RussianNormalizer – параметр позволяет активировать или деактивировать систему преобразования русских URL. По умолчанию true, при использовании других национальных языков рекомендуется устанавливать этот параметр в false.

ForceCheckCode – при установке параметра в true проверочный код отображается всегда. Используется для отладки, во время штатной работы рекомендуется отключать. По умолчанию false.
DefaultDocuments – список, перечисляющий все используемые по умолчанию документы, класса dafeult.aspx, index.php, index.html или любые другие, принятые вашей системой на сайте.

 

Настройка отдельной страницы

Помимо общей настройки через web.config файл доступно конфигурирование некоторых параметров отдельных страниц. Для конфигурирования отдельной странице разместите на ней следующий код контрола:

<efe:SapePageConfig runat="server" />

И перечислите в параметрах контрола параметры, которые вы хотите установить. Список доступных параметров:

  • Host,
  • UrlAnalyzer,
  • QueryAnalyzer,
  • QueryFilter,
  • QueryParameters,
  • IgnoreCase,
  • UserId

Действие параметров абсолютно аналогично описанным в предыдущем разделе за исключением того, что областью их действия является только страница, на которой выполняется этот код.
Внимание! На странице возможно размещение только одного контрола SapePageConfig.
Внимание! Параметры, указанные в контроле SapePageConfig переопределяют параметры, указанные в web.config.

Пример:

<efe:SapePageConfig
	runat="server"
	UrlAnalyzer="True"
	QueryAnalyzer="True"
	QueryFilter="True"
	IgnoreCase="True"
	QueryParameters="a,bb"/>

 

Программный вызов кода вывода

Компоненты модели системы размещения ссылок могут использоваться как декларативно (описано выше), так и непосредственно на языке программирования, как показано в текущей главе. Обратите внимение, что непосредственно не может быть создан объект настройки страницы. Использование объектов не может заменить конфигурирования системы через файл web.config.

Ниже представлен общий шаблон работы с системой (с комментариями), весь код на языке C#:

//Инициализация пользователя, идентификаор берется из конфига
SapeUser user = SapeFactory.Factory.GetUser();
//Инициализация пользователя, идентификаор задается явно
//SapeUser user = SapeFactory.Factory.GetUser("User Id");

//Инициализация хоста, хост берется автоматически или из конфига
SapeHost host = user.GetHost();
//Инициализация хоста, хост указывается явно
//SapeHost host = user.GetHost("example.ru");

//Инициализация URL, URL определяется автоматически по запросу пользователя
SapeUrl url = new SapeUrl();
//Инициализация URL, URL указывается явно
//SapeUrl url = new SapeUrl("/MyTestPage.aspx");

//Получение объекта страницы системы, явное указание URL
SapePage page = host.GetPage(url);
//Получение объекта страницы системы, URL определяется автоматически
//SapePage page = host.GetPage();

//Получение списка ссылок для ручной обработки
if (page != null)
	List<SapeLink> links = page.GetLinks();
//Получение списка контекстных ссылок
//List<SapeContextLink> contextLinks = page.GetContextLinks();
foreach (SapeLink link in links)
{
	Response.Write(link.RawLink + host.Delimiter);
}
if (page != null)
{
	//Получение всех ссылок строкой
	Response.Write(page.GetLinksAsString());
	//Получение диапазона сылок
	Response.Write(page.GetLinksAsString(0, 1)); // первые 2 ссылки
	Response.Write(" some text ");
	Response.Write(page.GetLinksAsString(2, 4)); // ссылки с 3 по 5
	//Расстановка в тексте контекстных ссылок.
	//Внимание! Вы сами следите за тем чтобы текст индексировался
	//и выводился один и тот же.
	Response.Write(page.MakeContestLinks("some content"));
}

Далее представлен пример реализации самой простой задачи – отображения всех ссылок (не контекст) одним блоком (все настройки беруться из конфига):

Response.Write(
	SapeFactory.Factory.GetUser().GetHost().GetPageOrDefault().GetLinksAsString()
);

При программном использовании системы незабудьте указать неймспейс effetto.Sape :

using effetto.Sape;

 

Особенности работы с контекстыми ссылками

Простейший способ использования контекста выглядит так:

<efe:SapeContext runat="server">
	<Content>
		Фрагмент страницы под контекст
	</Content>
</efe:SapeContext>

Однако если вы используете не только декларативную модель веб страницы, но так же сочитаете ее с частью кода, то для использования контекста вам понадобится несколько переработать код заполнения ваших элементов управления. Дело в том, что область видимости имен элементов сменится и станет принадлежать элементу SapeContext, а вам придется использовать метод FindControl для ссылки на объект. Рассмотрим на примере.

Допустим у вас имеется страница следующего характера:

<body>
	<form runat="server">
		<asp:Label runat="server" Id="sampleLabel"/>
	</form>
</body>

И Code-behind файл примерно следующего содержания:

protected void Page_Load(object sender, EventArgs e)
{
	sampleLabel.Text = "some content";
}

Тогда при установке контекста страница примет следующий вид:

<body>
	<form runat="server">
		<efe:SapeContext runat="server" Id="sapeContext">
			<Content>
				<asp:Label runat="server" Id="sampleLabel"/>
			</Content>
		</efe:SapeContext>
	</form>
</body>

А Code-behind необходимо доработать, а именно перед ссылкой на элемент теперь нужно сначала используемую ссылку получить:

protected void Page_Load(object sender, EventArgs e)
{
	Label sampleLabel;
	sampleLabel = (Label)sapeContext.FindControl("sampleLabel");
	sampleLabel.Text = "some content";
}