false, 'error' => 'event required']); exit; } $ip = $_SERVER['HTTP_CF_CONNECTING_IP'] ?? ($_SERVER['HTTP_X_FORWARDED_FOR'] ?? ($_SERVER['REMOTE_ADDR'] ?? null)); if ($ip && strpos($ip, ',') !== false) $ip = trim(explode(',', $ip)[0]); $ua = substr($_SERVER['HTTP_USER_AGENT'] ?? '', 0, 500); try { $pdo = new PDO('pgsql:host=10.1.0.3;port=5432;dbname=adx_system', 'admin', 'admin123', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_TIMEOUT => 3 ]); $stmt = $pdo->prepare('INSERT INTO chatbot_conversions (session_id, event, vertical, source, data, url, referrer, ip, user_agent) VALUES (?, ?, ?, ?, ?::jsonb, ?, ?, ?, ?)'); $stmt->execute([ $session_id, $event, $vertical, $source, $data ? json_encode($data) : null, $url, $referrer, $ip, $ua ]); echo json_encode(['ok' => true, 'session_id' => $session_id, 'event' => $event]); } catch (Exception $e) { error_log('[chatbot-conv-track] ' . $e->getMessage()); echo json_encode(['ok' => false, 'error' => 'store_failed']); }