Пользовательский редирект или действие

Доступно только в профессиональной и бизнес редакции

Создание скрипта редиректа

Директория для пользовательских скриптов /application/redirects/.

Для скрипта редиректа «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->getRequest() Получить объект 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:
      //..    
}