getUAParser($request->getUserAgent(), $request->getClientHints()); $genericDevice = ''; $deviceType = $parser->getDeviceName(); if (!empty($deviceType)) { $genericDevice = 'generic ' . $deviceType; } elseif ($parser->isMobile()) { $genericDevice = 'generic mobile'; } // in privacy compliance mode, we can only detect/return generic device type, but not the model if (DevicesDetection::isDeviceModelDetectionDisabledByCompliancePolicy($request->getIdSiteIfExists())) { return $genericDevice; } $model = $parser->getModel(); if (!empty($model)) { return mb_substr($model, 0, 100); } return $genericDevice; } /** * @param Action|null $action * @return mixed */ public function onAnyGoalConversion(Request $request, Visitor $visitor, $action) { return $visitor->getVisitorColumn($this->columnName); } }