# Пользовательский редирект
Обратите внимание!
Доступно только в профессиональной и бизнес редакции
# Создание скрипта редиректа
Директория для пользовательских скриптов /application/redirects/
.
Описание объектов читайте на странице Internals.
Для скрипта редиректа «FBPixel», создадим файл fbpixel.php
. Ниже пример кода. Обратите внимание, что имя класса совпадает с именем файла.
<?php
namespace Redirects;
use Traffic\Actions\AbstractAction;
class fbpixel extends AbstractAction
{
protected $_name = 'FBPixel'; // имя действия или редиректа
protected $_weight = 100;
public function getType()
{
return self::TYPE_REDIRECT; # or self::TYPE_OTHER
}
protected function _execute()
{
$remarketing = <<<EOF
<!-- Код ремаркетинга -- >
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1914721942087471');
fbq('track', "PageView");</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1914721942087472&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
EOF;
$url = $this->getActionPayload();
$code = '<html>
<head>
' . $remarketing . '
<meta http-equiv="REFRESH" content="1; URL=\'' . $url. '\'">
<script type="text/javascript">window.location = "' . $url . '";</script>
</head>
<body>
The Document has moved <a href="' . $url . '">here</a>
</body>
</html>';
$this->setContent($code);
}
}
# Методы
Метод | Описание |
---|---|
$this->getRawClick() | Получить объект RawClick |
$this->getStream() | Получить объект BaseStream |
$this->getCampaign() | Получить объект Campaign |
$this->getLanding() | Получить объект Landing |
$this->getOffer() | Получить объект Offer |
$this->getServerRequest() | Получить объект PSR-7 Server Request |
$this->getActionPayload() | Получить action payload (URL или текст) с обработанными макросами |
$this->getRawActionPayload() | Получить action payload до обработки макросами |
$this->getActionOptions() | Получить массив настроек действия/редирект |
$this->addHeader($headerLine) | Добавить передачу заголовка |
$this->redirect($url) | Выполнить редирект |
$this->setContent($text) | Передать какой-либо контент |
$this->setContentType($contentType) | Установить тип контента |
$this->setStatus($httpStatusCode) | Установить HTTP-статус |
$this->setDestinationInfo($string) | Установить "Направление" для отчетов |
# Как адаптировать под разные методы интеграции?
Смотрите входящий параметр frm
switch ($this->getRequest()->getParam('frm')) {
case 'script':
//...
break;
case 'frame':
//...
break;
default:
//..
}