fix

parent 35d070ed
<?php <?php
use common\modules\sessions\models\SessionUrl;
use yii\helpers\Html; use yii\helpers\Html;
use yii\helpers\Url; use yii\helpers\Url;
...@@ -153,12 +154,15 @@ use common\modules\bids\models\BidFile; ...@@ -153,12 +154,15 @@ use common\modules\bids\models\BidFile;
$params = $url->parseUrl(); ?> $params = $url->parseUrl(); ?>
<p> <p>
Рекламная площадка: <?=$params['utm_medium']?> <br> Рекламная площадка: <?=$params['utm_source']?> <br>
Компания: <?=$params['utm_campaign']?> <br> Маркетинговый канал: <?=$params['utm_medium']?> <br>
Номер объявления: <?=$params['utm_content']?> <br> Компания: <?=$params['campaign_id']?> <br>
Ключевое слово: <?=$params['keyword']?> <br> Ключевое слово: <?=$params['utm_term']?> <br>
Тип блока: <?=$params['position_type']?> <br> Тип блока: <?=SessionUrl::getPositionType($params['position_type'])?> <br>
Позиция объявления в блоке: <?=$params['position']?> <br><br> Позиция объявления в блоке: <?=$params['position']?> <br>
ID-объявления: <?=$params['ad_id']?> <br>
Тип устройства, на котором произведен показ: <?=SessionUrl::getDeviceType($params['device_type'])?> <br>
Регион показа объявления: <?=$params['region_name']?> <br><br>
<strong>Дата посещения:</strong> <?=date('d.m.Y H:i', $url->created_at)?> <br> <strong>Дата посещения:</strong> <?=date('d.m.Y H:i', $url->created_at)?> <br>
<strong>Время пребывания на посадочной странице:</strong> <?=date('H:i:s', mktime(0, 0, $url->time))?> <br> <strong>Время пребывания на посадочной странице:</strong> <?=date('H:i:s', mktime(0, 0, $url->time))?> <br>
......
...@@ -20,6 +20,26 @@ use common\modules\sessions\models\Session; ...@@ -20,6 +20,26 @@ use common\modules\sessions\models\Session;
*/ */
class SessionUrl extends \common\components\ActiveRecordModel class SessionUrl extends \common\components\ActiveRecordModel
{ {
/**
* Тип блока (position_type), если показ произошел на странице с результатами поиска
* @var array
*/
private static $_position_type = [
'premium' => 'спецразмещение',
'other' => 'блок справа или блок внизу',
'none' => 'объявление было показано в сетях (РСЯ или внешние сети)'
];
/**
* Тип устройства, на котором произведен показ
* @var array
*/
private static $_device_type = [
'desktop' => 'десктоп',
'mobile' => 'мобильный телефон',
'tablet' => 'планшет'
];
/** /**
* @inheritdoc * @inheritdoc
*/ */
...@@ -28,6 +48,9 @@ class SessionUrl extends \common\components\ActiveRecordModel ...@@ -28,6 +48,9 @@ class SessionUrl extends \common\components\ActiveRecordModel
return 'sessions_url'; return 'sessions_url';
} }
/**
* @return string
*/
public function name() public function name()
{ {
return 'Посещения страниц'; return 'Посещения страниц';
...@@ -69,12 +92,19 @@ class SessionUrl extends \common\components\ActiveRecordModel ...@@ -69,12 +92,19 @@ class SessionUrl extends \common\components\ActiveRecordModel
return $this->hasOne(Session::className(), ['id' => 'session_id']); return $this->hasOne(Session::className(), ['id' => 'session_id']);
} }
// Время пребывания на странице в секундах /**
* Время пребывания на странице в секундах
* @return int
*/
public function getTime() public function getTime()
{ {
return $this->updated_at - $this->created_at; return $this->updated_at - $this->created_at;
} }
/**
* Парсинг GET параметров рефферальной страницы
* @return mixed
*/
public function parseUrl() public function parseUrl()
{ {
parse_str(parse_url($this->url, PHP_URL_QUERY), $params); parse_str(parse_url($this->url, PHP_URL_QUERY), $params);
...@@ -82,15 +112,40 @@ class SessionUrl extends \common\components\ActiveRecordModel ...@@ -82,15 +112,40 @@ class SessionUrl extends \common\components\ActiveRecordModel
return $params; return $params;
} }
/**
* Содержит ли рефферальная страница UTM метки
* @return int
*/
public function isUtm() public function isUtm()
{ {
$params = $this->parseUrl(); $params = $this->parseUrl();
if(isset($params['utm_source'])) if(isset($params['utm_source'])) {
{ return true;
return 1;
} }
return 0; return false;
}
/**
* @return array
*/
public static function getPositionType($type)
{
if(isset(self::$_position_type[$type])) {
return self::$_position_type[$type];
}
return null;
}
/**
* @return array
*/
public static function getDeviceType($type)
{
if(isset(self::$_device_type[$type])) {
return self::$_device_type[$type];
}
return null;
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment