/* =========================================================
🎯 AI RETURN VISITOR OPTIMIZER v2.5 - CROSS-PLATFORM EDITION
ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ v2.0 (ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΑ):
- Μετρητής για 4 φυσικές σφυρίχτρες
- Έξυπνη επιλογή 4 πιο πιθανών αγοραστών
- Βελτιστοποίηση Google Adsense
- Πλήρη χαρακτηριστικά v1.2
ΝΕΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ:
- Ενσωμάτωση YouTube καναλιού (@e_repellent_com)
- Αμφίδρομη απόδοση μετά από 4 ημέρες
- Ανίχνευση προέλευσης επισκέπτη
========================================================= */
(function() {
'use strict';
if (window.__RETURN_VISITOR_OPTIMIZER_V25__) return;
window.__RETURN_VISITOR_OPTIMIZER_V25__ = true;
const CONFIG = {
// ΠΑΡΑΜΕΤΡΟΣ ΠΑΡΑΓΓΕΛΙΩΝ: ΑΛΛΑΞΤΕ ΤΟΝ ΑΡΙΘΜΟ ΓΙΑ ΝΑ ΟΡΙΣΕΤΕ ΠΟΣΕΣ ΦΥΣΙΚΕΣ ΣΦΥΡΙΧΤΡΕΣ ΘΕΛΕΤΕ ΝΑ ΠΟΥΛΗΣΕΤΕ
physicalWhistlesToSell: 4, // ΟΡΙΣΤΕ ΕΔΩ ΤΟΝ ΑΡΙΘΜΟ ΤΩΝ ΠΑΡΑΓΓΕΛΙΩΝ (Π.Χ. 4)
returnThreshold: 7 * 24 * 60 * 60 * 1000,
revisitReminder: 3 * 24 * 60 * 60 * 1000,
returnWindowHours: 7,
adRefreshInterval: 30000, // Ανανέωση Adsense κάθε 30 δευτερόλεπτα για αυξημένα έσοδα
// ΝΕΟ: Ρυθμίσεις καναλιών
channels: {
youtube: {
name: 'YouTube',
url: 'https://youtube.com/@e_repellent_com?si=WHNpV5rq6ZFeRsC_',
handle: '@e_repellent_com',
icon: '📺',
returnDays: 4, // Επιστροφή μετά από 4 μέρες
returnMessage: '🎬 Επιστρέψτε στο YouTube για νέα βίντεο!'
},
tiktok: {
name: 'TikTok',
url: 'https://tiktok.com/@e_repellent_com', // ΒΑΛΤΕ ΤΟ ΣΩΣΤΟ LINK
handle: '@e_repellent_com',
icon: '🎵',
returnDays: 4, // Επιστροφή μετά από 4 μέρες
returnMessage: '🎵 Μην χάσετε τα νέα βίντεο στο TikTok!'
}
},
incentives: {
firstReturn: {
type: 'discount',
value: '10%',
message: 'Επιστρέψατε! Απολαύστε 10% έκπτωση στην επόμενη αγορά σας'
},
loyaltyPoints: true,
exclusiveContent: true
},
useCookies: true,
useLocalStorage: true,
useSessionStorage: true,
enableReminders: true,
reminderMethods: ['email', 'push'],
popupDelay: 5000,
exitIntent: true,
enableGamification: true,
returnStreak: true,
useAIScoring: true,
tiktokLinks: ['tiktok.com', 'vm.tiktok.com']
};
const isLocalStorageAvailable = () => {
try { return 'localStorage' in window && window.localStorage !== null; }
catch { return false; }
};
// ΝΕΟ: Ανίχνευση προέλευσης επισκέπτη
const SourceDetector = {
getSource: function() {
// Έλεγχος referrer
const referrer = document.referrer || '';
if (referrer.includes('youtube.com') || referrer.includes('youtu.be')) {
return 'youtube';
}
if (referrer.includes('tiktok.com') || referrer.includes('vm.tiktok.com')) {
return 'tiktok';
}
// Έλεγχος URL parameters
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('source') === 'youtube') return 'youtube';
if (urlParams.get('source') === 'tiktok') return 'tiktok';
// Έλεγχος cookies για προηγούμενη επίσκεψη
const lastSource = this.getCookie('last_source');
if (lastSource) return lastSource;
return 'direct';
},
getCookie: function(name) {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
return match ? match[2] : null;
},
setSourceCookie: function(source) {
document.cookie = `last_source=${source}; max-age=2592000; path=/`; // 30 μέρες
},
// Έλεγχος αν πρέπει να προτρέψουμε για επιστροφή (μετά από 4 μέρες)
shouldPromptReturn: function(visitor) {
if (!visitor || !visitor.source || visitor.source === 'direct') return false;
const daysSinceLastChannelVisit = (Date.now() - (visitor.lastChannelVisit || 0)) / (24 * 60 * 60 * 1000);
const targetDays = CONFIG.channels[visitor.source]?.returnDays || 4;
return daysSinceLastChannelVisit >= targetDays;
}
};
const VisitorDB = {
getVisitorId: function() {
if (!isLocalStorageAvailable()) return 'visitor_' + Date.now();
let visitorId = localStorage.getItem('visitor_unique_id_v25');
if (!visitorId) {
visitorId = 'visitor_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
localStorage.setItem('visitor_unique_id_v25', visitorId);
}
return visitorId;
},
data: null,
load: function() {
try {
if (!isLocalStorageAvailable()) {
this.data = this.getDefaultData();
return this.data;
}
const stored = localStorage.getItem('visitor_return_data_v25');
this.data = stored ? JSON.parse(stored) : this.getDefaultData();
} catch (e) {
this.data = this.getDefaultData();
}
return this.data;
},
save: function() {
try {
if (!isLocalStorageAvailable() || !this.data) return;
localStorage.setItem('visitor_return_data_v25', JSON.stringify(this.data));
// Αποθήκευση πηγής και σε cookie
if (this.data.source) {
SourceDetector.setSourceCookie(this.data.source);
}
} catch (e) {}
},
getDefaultData: function() {
const source = SourceDetector.getSource();
return {
visitorId: this.getVisitorId(),
// ΝΕΟ: Πληροφορίες προέλευσης
source: source, // 'youtube', 'tiktok', ή 'direct'
firstVisit: Date.now(),
lastVisit: Date.now(),
// ΝΕΟ: Τελευταία επίσκεψη από κανάλι
lastChannelVisit: Date.now(),
visitCount: 1,
returnCount: 0,
totalVisits: 1,
pagesViewed: [window.location.pathname],
timeOnSite: 0,
returnProbability: 0,
incentivesClaimed: [],
email: null,
phone: null,
returnStreak: 0,
longestStreak: 0,
preferences: {},
conversionIntent: 0,
lastInteraction: Date.now(),
reminderSent: false,
returnScore: 0,
abandonedCart: false,
lastVisitDate: new Date().toDateString(),
lastVisitTimestamp: Date.now(),
// ΝΕΑ ΠΕΔΙΑ ΓΙΑ ΤΟΝ ΜΕΤΡΗΤΗ ΠΑΡΑΓΓΕΛΙΩΝ
purchaseIntent: 0,
productInterest: { physicalWhistle: 0 },
adInteractions: 0,
scrollDepth: 0,
cursorHeatmap: [],
timeOnProductPages: 0,
quickReturns: 0,
// Μετρητής παραγγελιών
orders: {
physicalWhistle: {
count: 0,
target: CONFIG.physicalWhistlesToSell,
completed: false
}
},
// ΝΕΟ: Στατιστικά ανά κανάλι
channelVisits: {
youtube: source === 'youtube' ? 1 : 0,
tiktok: source === 'tiktok' ? 1 : 0,
direct: source === 'direct' ? 1 : 0
},
// ΝΕΟ: Πότε έκανε τελευταία φορά return στο κάθε κανάλι
lastChannelReturn: {
youtube: null,
tiktok: null
}
};
}
};
// ΝΕΟ: Σύστημα cross-platform προτροπών
const CrossPlatformPrompter = {
init: function(visitor) {
if (!visitor) return;
// Ενημέρωση στατιστικών καναλιού
if (visitor.source !== 'direct') {
visitor.channelVisits[visitor.source] = (visitor.channelVisits[visitor.source] || 0) + 1;
visitor.lastChannelVisit = Date.now();
VisitorDB.save();
}
// Έλεγχος για προτροπή επιστροφής (μετά από 4 μέρες)
if (SourceDetector.shouldPromptReturn(visitor) && visitor.source !== 'direct') {
this.showReturnPrompt(visitor);
}
// Εμφάνιση welcome message με βάση την πηγή (μόνο για πρώτη επίσκεψη)
if (visitor.visitCount === 1 && visitor.source !== 'direct') {
this.showWelcomeMessage(visitor);
}
},
showWelcomeMessage: function(visitor) {
if (!visitor || !visitor.source) return;
const channel = CONFIG.channels[visitor.source];
if (!channel) return;
try {
const welcome = document.createElement('div');
welcome.style.cssText = `
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 15px 30px;
border-radius: 50px;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
z-index: 999999;
font-family: Arial, sans-serif;
animation: slideDown 0.5s ease;
display: flex;
align-items: center;
gap: 10px;
`;
welcome.innerHTML = `
${channel.icon}
Καλωσήρθατε από το ${channel.name}!
Επιστρέψτε σε 4 μέρες για αποκλειστική προσφορά!
✕
`;
document.body.appendChild(welcome);
setTimeout(() => welcome.remove(), 8000);
} catch (e) {}
},
showReturnPrompt: function(visitor) {
if (!visitor || !visitor.source) return;
if (document.getElementById('returnPrompt')) return;
const channel = CONFIG.channels[visitor.source];
if (!channel) return;
try {
const prompt = document.createElement('div');
prompt.id = 'returnPrompt';
prompt.style.cssText = `
position: fixed;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #FF6B6B 0%, #4ECDC4 100%);
color: white;
padding: 25px;
border-radius: 15px;
box-shadow: 0 10px 40px rgba(0,0,0,0.3);
z-index: 1000000;
max-width: 400px;
text-align: center;
font-family: Arial, sans-serif;
animation: slideUp 0.5s ease;
`;
const remainingWhistles = OrderTracker.getRemainingWhistles();
prompt.innerHTML = `
${channel.icon}
${channel.returnMessage}
Έχουν περάσει 4 μέρες από την τελευταία σας επίσκεψη στο κανάλι μας!
Νέα βίντεο σας περιμένουν!
${remainingWhistles > 0 ? `
🔊 Φυσικές σφυρίχτρες:
${remainingWhistles}
` : ''}
* Επιστρέφοντας, κερδίστε πόντους επιβράβευσης!
`;
document.body.appendChild(prompt);
// Ανανέωση του lastChannelReturn
visitor.lastChannelReturn[visitor.source] = Date.now();
VisitorDB.save();
setTimeout(() => {
if (prompt.parentNode) prompt.remove();
}, 30000);
} catch (e) {}
}
};
// OrderTracker - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const OrderTracker = {
getRemainingWhistles: function() {
const visitor = VisitorDB.load();
if (!visitor || !visitor.orders) return CONFIG.physicalWhistlesToSell;
const sold = visitor.orders.physicalWhistle?.count || 0;
return Math.max(0, CONFIG.physicalWhistlesToSell - sold);
},
isWhistleSoldOut: function() {
return this.getRemainingWhistles() <= 0;
},
registerWhistlePurchase: function(visitorId) {
try {
const visitors = this.getAllVisitors();
let updated = false;
Object.keys(visitors).forEach(id => {
const visitorData = visitors[id];
if (visitorData && visitorData.orders) {
if (id === visitorId || visitorData.visitorId === visitorId) {
if (!visitorData.orders.physicalWhistle.completed) {
visitorData.orders.physicalWhistle.count++;
if (visitorData.orders.physicalWhistle.count >= CONFIG.physicalWhistlesToSell) {
visitorData.orders.physicalWhistle.completed = true;
this.optimizeForRemainingVisitors();
}
this.saveAllVisitors(visitors);
updated = true;
}
}
}
});
return updated;
} catch (e) {
console.warn('Error registering purchase:', e);
return false;
}
},
getAllVisitors: function() {
try {
const allData = localStorage.getItem('all_visitors_data_v25');
return allData ? JSON.parse(allData) : {};
} catch {
return {};
}
},
saveAllVisitors: function(visitors) {
try {
localStorage.setItem('all_visitors_data_v25', JSON.stringify(visitors));
} catch (e) {}
},
optimizeForRemainingVisitors: function() {
console.log('🎯 Target παραγγελιών συμπληρώθηκε! Βελτιστοποίηση για Adsense...');
if (typeof window.googletag !== 'undefined') {
try {
window.googletag.cmd.push(function() {
const adSlots = window.googletag.pubads().getSlots();
adSlots.forEach(slot => {
slot.setTargeting('visitor_type', 'ad_optimized');
});
window.googletag.pubads().refresh(adSlots);
});
} catch (e) {}
}
},
getTopBuyerCandidates: function(limit = 4) {
const visitors = this.getAllVisitors();
const candidates = [];
Object.values(visitors).forEach(visitor => {
if (visitor && !visitor.orders?.physicalWhistle?.completed) {
const score = this.calculateBuyerScore(visitor);
candidates.push({
visitor: visitor,
score: score,
id: visitor.visitorId
});
}
});
candidates.sort((a, b) => b.score - a.score);
return candidates.slice(0, limit);
},
calculateBuyerScore: function(visitor) {
if (!visitor) return 0;
let score = 0;
score += (visitor.purchaseIntent || 0) * 30;
score += (visitor.productInterest?.physicalWhistle || 0) * 25;
score += Math.min(25, (visitor.timeOnProductPages || 0) / 120000);
score += Math.min(15, (visitor.scrollDepth || 0) * 1.5);
score += Math.min(10, (visitor.adInteractions || 0) * 5);
if (visitor.returnCount > 0) score += 10;
if (visitor.returnStreak > 2) score += 5;
const pageViews = visitor.pagesViewed || [];
if (pageViews.some(page => page.includes('whistle') || page.includes('σφυρίχτρα'))) {
score += 20;
}
return Math.min(100, score);
},
trackProductInterest: function(visitor) {
if (!visitor) return;
const pageContent = document.body?.innerText || '';
const whistleKeywords = ['σφυρίχτρα', 'whistle', 'φυσική σφυρίχτρα', 'physical whistle'];
let interestBoost = 0;
whistleKeywords.forEach(keyword => {
if (pageContent.toLowerCase().includes(keyword.toLowerCase())) {
interestBoost += 0.05;
}
});
visitor.productInterest.physicalWhistle = Math.min(1,
(visitor.productInterest.physicalWhistle || 0) + interestBoost
);
this.trackWhistleClicks(visitor);
VisitorDB.save();
},
trackWhistleClicks: function(visitor) {
document.querySelectorAll('a, button, .product, img').forEach(element => {
if (!element.hasAttribute('data-whistle-tracked')) {
element.addEventListener('click', function(e) {
const text = e.target.innerText || e.target.alt || '';
if (text.toLowerCase().includes('σφυρίχτρ') || text.toLowerCase().includes('whistle')) {
visitor.purchaseIntent = Math.min(1, (visitor.purchaseIntent || 0) + 0.1);
visitor.productInterest.physicalWhistle = Math.min(1,
(visitor.productInterest.physicalWhistle || 0) + 0.15
);
VisitorDB.save();
}
});
element.setAttribute('data-whistle-tracked', 'true');
}
});
}
};
// AdsenseOptimizer - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const AdsenseOptimizer = {
init: function() {
this.enhanceAdPerformance();
this.trackAdInteractions();
this.setupAdRefresh();
},
enhanceAdPerformance: function() {
const visitor = VisitorDB.load();
if (!visitor) return;
const remainingWhistles = OrderTracker.getRemainingWhistles();
if (remainingWhistles <= 0) {
this.maximizeAdRevenue(visitor);
} else {
this.targetPotentialBuyers(visitor);
}
},
maximizeAdRevenue: function(visitor) {
console.log('📊 Λειτουργία μεγιστοποίησης Adsense ενεργοποιημένη');
if (!visitor.orders?.physicalWhistle?.completed) {
visitor.adInteractions = (visitor.adInteractions || 0) + 1;
this.injectAdOpportunities();
}
},
targetPotentialBuyers: function(visitor) {
const topCandidates = OrderTracker.getTopBuyerCandidates(4);
const isTopCandidate = topCandidates.some(c => c.id === visitor.visitorId);
if (isTopCandidate) {
this.showWhistleOffer(visitor);
} else {
visitor.adInteractions = (visitor.adInteractions || 0) + 1;
}
},
showWhistleOffer: function(visitor) {
try {
if (document.getElementById('whistleOffer')) return;
const offerDiv = document.createElement('div');
offerDiv.id = 'whistleOffer';
offerDiv.style.cssText = `
position: fixed;
bottom: 20px;
left: 20px;
background: linear-gradient(135deg, #FF6B6B 0%, #4ECDC4 100%);
color: white;
padding: 20px;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
z-index: 1000000;
max-width: 320px;
font-family: Arial, sans-serif;
animation: slideUp 0.5s ease;
cursor: pointer;
`;
const remaining = OrderTracker.getRemainingWhistles();
offerDiv.innerHTML = `
🔊 Φυσική Σφυρίχτρα
Μόνο ${remaining} διαθέσιμες! Αποκλειστική προσφορά για εσάς.
Αγορά Τώρα
Αργότερα
`;
document.body.appendChild(offerDiv);
setTimeout(() => {
if (offerDiv.parentNode) offerDiv.remove();
}, 30000);
offerDiv.querySelector('button:first-child').onclick = function() {
visitor.orders.physicalWhistle.count++;
OrderTracker.registerWhistlePurchase(visitor.visitorId);
offerDiv.innerHTML = '✅ Ευχαριστούμε για την αγορά σας!
';
setTimeout(() => offerDiv.remove(), 2000);
};
} catch (e) {
console.warn('Offer show failed:', e);
}
},
injectAdOpportunities: function() {
const contentElements = document.querySelectorAll('p, h2, h3, .content');
contentElements.forEach((el, index) => {
if (index % 5 === 0 && !el.querySelector('.ad-injected')) {
const adBadge = document.createElement('span');
adBadge.className = 'ad-injected';
adBadge.style.cssText = `
display: inline-block;
background: #f8f9fa;
color: #6c757d;
font-size: 11px;
padding: 2px 6px;
border-radius: 3px;
margin-left: 5px;
cursor: pointer;
`;
adBadge.innerHTML = '📢 Διαφήμιση';
adBadge.onclick = () => {
const visitor = VisitorDB.load();
if (visitor) {
visitor.adInteractions = (visitor.adInteractions || 0) + 1;
VisitorDB.save();
}
};
el.appendChild(adBadge);
}
});
},
trackAdInteractions: function() {
document.addEventListener('click', function(e) {
if (e.target.closest('.adsbygoogle') ||
e.target.closest('[class*="ad"]') ||
e.target.classList.contains('ad-injected')) {
const visitor = VisitorDB.load();
if (visitor) {
visitor.adInteractions = (visitor.adInteractions || 0) + 1;
visitor.purchaseIntent = Math.max(0, (visitor.purchaseIntent || 0) - 0.02);
VisitorDB.save();
}
}
});
},
setupAdRefresh: function() {
setInterval(() => {
const remaining = OrderTracker.getRemainingWhistles();
if (remaining <= 0) {
if (typeof window.googletag !== 'undefined') {
try {
window.googletag.cmd.push(function() {
window.googletag.pubads().refresh();
});
} catch (e) {}
}
}
}, CONFIG.adRefreshInterval);
}
};
// ReturnAI - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const ReturnAI = {
calculateReturnProbability: function(visitor) {
if (!visitor) return 0.5;
let probability = 0.5;
if (visitor.visitCount > 1) {
probability += 0.15;
if (visitor.visitCount > 3) probability += 0.1;
if (visitor.visitCount > 10) probability += 0.1;
}
const timeScore = Math.min(0.2, (visitor.timeOnSite || 0) / 600000);
probability += timeScore;
const pageScore = Math.min(0.15, (visitor.pagesViewed || []).length / 10);
probability += pageScore;
if (visitor.returnCount > 0) {
probability += 0.2;
probability += Math.min(0.1, (visitor.returnStreak || 0) * 0.02);
}
if (visitor.email) probability += 0.25;
if (visitor.phone) probability += 0.2;
probability += (visitor.conversionIntent || 0) * 0.5;
probability += (visitor.productInterest?.physicalWhistle || 0) * 0.3;
const hoursSinceLast = (Date.now() - (visitor.lastVisitTimestamp || Date.now())) / (60 * 60 * 1000);
if (hoursSinceLast < CONFIG.returnWindowHours) {
probability += 0.3;
} else if (hoursSinceLast < 24) {
probability += 0.15;
} else if (hoursSinceLast < 48) {
probability += 0.05;
}
return Math.min(0.99, Math.max(0.01, probability));
},
getPersonalizedMessage: function(visitor, probability) {
if (!CONFIG.incentives || !visitor) return null;
const messages = [];
const remaining = OrderTracker.getRemainingWhistles();
if (remaining > 0 && remaining <= 2) {
messages.push({
type: 'limited',
message: `⏰ Μόνο ${remaining} φυσικές σφυρίχτρες απέμειναν!`,
incentive: 'Δωρεάν μεταφορικά για άμεση αγορά'
});
}
if (visitor.visitCount === 1) {
messages.push({
type: 'welcome',
message: 'Καλώς ήρθατε! Εγγραφείτε για να λαμβάνετε αποκλειστικές προσφορές',
incentive: '10% έκπτωση στο πρώτο σας email'
});
}
if (visitor.returnCount > 0) {
const hoursSinceLast = (Date.now() - (visitor.lastVisitTimestamp || Date.now())) / (60 * 60 * 1000);
let returnMessage = `Χαίρομαι που σας βλέπω ξανά! Αυτή είναι η ${visitor.visitCount}η επίσκεψή σας`;
if (hoursSinceLast < CONFIG.returnWindowHours) {
returnMessage = `Ουάου! Επιστρέψατε μέσα σε ${Math.round(hoursSinceLast)} ώρες! Εντυπωσιακό!`;
}
messages.push({
type: 'return',
message: returnMessage,
incentive: 'Πόντοι επιβράβευσης x2 σήμερα'
});
}
return messages.length > 0 ? messages[Math.floor(Math.random() * messages.length)] : null;
}
};
// IncentiveEngine - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const IncentiveEngine = {
offerReturnIncentive: function(visitor) {
if (!visitor) return [];
const incentives = [];
const remaining = OrderTracker.getRemainingWhistles();
if (remaining > 0) {
incentives.push({
type: 'whistle',
value: 'Φυσική Σφυρίχτρα',
message: `Αποκλειστική προσφορά: Μόνο ${remaining} διαθέσιμες!`,
code: 'WHISTLE20'
});
}
if (visitor.returnCount === 0) {
incentives.push({
type: 'discount',
value: '10%',
code: 'WELCOMEBACK10',
message: '10% έκπτωση',
expires: new Date(Date.now() + 7*24*60*60*1000).toLocaleDateString()
});
}
const hoursSinceLast = (Date.now() - (visitor.lastVisitTimestamp || Date.now())) / (60 * 60 * 1000);
if (hoursSinceLast < CONFIG.returnWindowHours && visitor.visitCount > 1) {
incentives.push({
type: 'quickReturn',
value: '20%',
code: 'QUICKRETURN20',
message: '20% έκπτωση για γρήγορη επιστροφή!'
});
}
return incentives;
},
getGamificationStatus: function(visitor) {
if (!CONFIG.enableGamification || !visitor) return null;
return {
level: Math.floor((visitor.visitCount || 1) / 5) + 1,
points: (visitor.visitCount || 1) * 100,
nextLevelAt: (Math.floor((visitor.visitCount || 1) / 5) + 1) * 5,
streak: visitor.returnStreak || 0,
badges: this.getBadges(visitor)
};
},
getBadges: function(visitor) {
if (!visitor) return [];
const badges = [];
if (visitor.visitCount >= 5) badges.push('Τακτικός Επισκέπτης');
if (visitor.visitCount >= 20) badges.push('VIP Member');
if (visitor.returnStreak >= 7) badges.push('Streak Master');
if (visitor.timeOnSite > 600000) badges.push('Εξερευνητής');
if (visitor.productInterest?.physicalWhistle > 0.7) badges.push('Ενδιαφέρον για Σφυρίχτρα');
if (visitor.quickReturns >= 3) badges.push('Speed Demon');
if (visitor.orders?.physicalWhistle?.completed) badges.push('Αγοραστής Σφυρίχτρας');
return badges;
}
};
// ReminderSystem - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const ReminderSystem = {
showReminderPopup: function(visitor) {
if (!CONFIG.enableReminders || !visitor) return;
if (visitor.reminderSent) return;
if (visitor.email || visitor.phone) return;
try {
const popup = document.createElement('div');
popup.style.cssText = `
position: fixed;
bottom: 20px;
right: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
z-index: 999999;
max-width: 300px;
font-family: Arial, sans-serif;
`;
popup.innerHTML = `
🔔 Μην χάσετε νέα!
Θέλετε να σας ενημερώνουμε για προσφορές και νέα;
Υπενθύμιση
✕
Κερδίστε 10% έκπτωση με την εγγραφή!
`;
document.body.appendChild(popup);
const saveBtn = document.getElementById('saveReminder');
const closeBtn = document.getElementById('closeReminder');
if (saveBtn) {
saveBtn.onclick = function() {
const emailInput = document.getElementById('reminderEmail');
const phoneInput = document.getElementById('reminderPhone');
if (emailInput && phoneInput) {
const email = emailInput.value;
const phone = phoneInput.value;
if (email || phone) {
if (email) visitor.email = email;
if (phone) visitor.phone = phone;
visitor.reminderSent = true;
VisitorDB.save();
popup.innerHTML = '✅ Ευχαριστούμε! Θα σας ειδοποιήσουμε για νέα και προσφορές.
';
setTimeout(() => popup.remove(), 3000);
}
}
};
}
if (closeBtn) {
closeBtn.onclick = function() {
popup.remove();
};
}
} catch (e) {}
},
scheduleReminder: function(visitor) {
if (!visitor || (!visitor.email && !visitor.phone)) return;
const lastVisit = visitor.lastVisit || Date.now();
const daysSince = (Date.now() - lastVisit) / (24 * 60 * 60 * 1000);
if (daysSince >= 3 && !visitor.reminderSent) {
console.log('🔔 Υπενθύμιση αποστολής σε:', visitor.email || visitor.phone);
visitor.reminderSent = true;
VisitorDB.save();
}
}
};
// ExitIntent - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0
const ExitIntent = {
init: function(visitor) {
if (!CONFIG.exitIntent || !visitor) return;
let mouseLeaveTimer;
document.addEventListener('mouseleave', function(e) {
clearTimeout(mouseLeaveTimer);
mouseLeaveTimer = setTimeout(() => {
if (e.clientY < 10) {
ExitIntent.showExitPopup(visitor);
}
}, 100);
});
},
showExitPopup: function(visitor) {
if (!visitor) return;
if (document.getElementById('exitPopup')) return;
try {
const popup = document.createElement('div');
popup.id = 'exitPopup';
popup.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 10px 40px rgba(0,0,0,0.3);
z-index: 1000000;
max-width: 400px;
text-align: center;
font-family: Arial, sans-serif;
`;
const probability = ReturnAI.calculateReturnProbability(visitor);
const incentives = IncentiveEngine.offerReturnIncentive(visitor);
const remaining = OrderTracker.getRemainingWhistles();
let incentivesHtml = '';
if (incentives.length > 0) {
const incentive = incentives[0];
incentivesHtml = `
Μόνο για εσάς:
🎁 ${incentive.message || 'Προσφορά επιστροφής'}
${incentive.code ? `
Κωδικός: ${incentive.code}
` : ''}
`;
}
const hoursSinceLast = visitor.lastVisitTimestamp ?
(Date.now() - visitor.lastVisitTimestamp) / (60 * 60 * 1000) : 24;
popup.innerHTML = `
⏳ Περιμένετε!
${probability > 0.7 ?
'Φαίνεται ότι σας αρέσει αυτό που βλέπετε!' :
'Μην φύγετε χωρίς την προσφορά σας!'}
${remaining > 0 ? `🔊 Μόνο ${remaining} φυσικές σφυρίχτρες απέμειναν!
` : ''}
${incentivesHtml}
Επιστρέψτε μέσα στις επόμενες 7 ώρες για ακόμα καλύτερες προσφορές!
Επιστροφή στη σελίδα
`;
document.body.appendChild(popup);
setTimeout(() => {
const exitPopup = document.getElementById('exitPopup');
if (exitPopup) exitPopup.remove();
}, 10000);
} catch (e) {}
}
};
// TikTokHandler - ΠΛΗΡΩΣ ΔΙΑΤΗΡΗΜΕΝΟ από v2.0 (με μικρή προσθήκη YouTube link)
const TikTokHandler = {
isTikTokLink: function(url) {
if (!url) return false;
return CONFIG.tiktokLinks.some(domain => url.includes(domain));
},
init: function() {
this.observeNewLinks();
this.processExistingLinks();
},
processExistingLinks: function() {
const allLinks = document.getElementsByTagName('a');
Array.from(allLinks).forEach(link => {
if (this.isTikTokLink(link.href)) {
this.modifyTikTokLink(link);
}
});
},
observeNewLinks: function() {
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes) {
mutation.addedNodes.forEach((node) => {
if (node.nodeName === 'A' && this.isTikTokLink(node.href)) {
this.modifyTikTokLink(node);
}
if (node.querySelectorAll) {
const links = node.querySelectorAll('a');
links.forEach(link => {
if (this.isTikTokLink(link.href)) {
this.modifyTikTokLink(link);
}
});
}
});
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
},
modifyTikTokLink: function(linkElement) {
if (linkElement.hasAttribute('data-tiktok-modified-v25')) return;
const originalHref = linkElement.href;
linkElement.addEventListener('click', (e) => {
e.preventDefault();
const visitor = VisitorDB.load();
const remaining = OrderTracker.getRemainingWhistles();
const hoursSinceLast = visitor.lastVisitTimestamp ?
(Date.now() - visitor.lastVisitTimestamp) / (60 * 60 * 1000) : 24;
const popup = document.createElement('div');
popup.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: linear-gradient(135deg, #25F4EE 0%, #FE2C55 100%);
color: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 10px 40px rgba(0,0,0,0.3);
z-index: 1000000;
max-width: 400px;
text-align: center;
font-family: Arial, sans-serif;
`;
popup.innerHTML = `
🎵 TikTok
Είστε πολύ ευχαριστημένος/η με αυτό που είδατε;
Στείλτε μου τον αριθμό του κινητού σας σε μήνυμα στο TikTok!
${remaining > 0 ? `
🔊 Μόνο ${remaining} φυσικές σφυρίχτρες απέμειναν!
` : ''}
Αν δεν είστε ακόμη έτοιμος/η να αγοράσετε τη φυσική σφυρίχτρα στο e-shop,
κάντε κοινοποίηση των βίντεο στο προφίλ μου στο TikTok!
${hoursSinceLast < CONFIG.returnWindowHours ?
'🌟 Επιστρέψατε γρήγορα! Μπόνους προσφορά 20%!
' :
'Επιστρέψτε μέσα σε 7 ώρες για έξτρα προσφορές!
'}
📺 Μην ξεχνάτε και το YouTube: @e_repellent_com
Συνέχεια στο TikTok
Αργότερα
`;
document.body.appendChild(popup);
setTimeout(() => {
if (popup.parentNode) popup.remove();
}, 15000);
});
linkElement.setAttribute('data-tiktok-modified-v25', 'true');
}
};
const ReturnOptimizer = {
init: function() {
try {
const visitor = VisitorDB.load();
if (!visitor) return;
const now = Date.now();
const timeSinceLast = now - (visitor.lastVisitTimestamp || now);
const hoursSinceLast = timeSinceLast / (60 * 60 * 1000);
if (hoursSinceLast <= CONFIG.returnWindowHours && visitor.visitCount > 0) {
visitor.returnCount = (visitor.returnCount || 0) + 1;
visitor.returnStreak = (visitor.returnStreak || 0) + 1;
visitor.quickReturns = (visitor.quickReturns || 0) + 1;
if (visitor.returnStreak > (visitor.longestStreak || 0)) {
visitor.longestStreak = visitor.returnStreak;
}
} else if (hoursSinceLast > CONFIG.returnWindowHours) {
visitor.returnStreak = 0;
}
visitor.lastVisit = now;
visitor.lastVisitTimestamp = now;
visitor.lastVisitDate = new Date().toDateString();
visitor.visitCount = (visitor.visitCount || 0) + 1;
visitor.totalVisits = (visitor.totalVisits || 0) + 1;
// Παρακολούθηση ενδιαφέροντος για προϊόντα
OrderTracker.trackProductInterest(visitor);
// Υπολογισμός πιθανότητας αγοράς
visitor.purchaseIntent = OrderTracker.calculateBuyerScore(visitor) / 100;
visitor.returnProbability = ReturnAI.calculateReturnProbability(visitor);
VisitorDB.save();
// ΝΕΟ: Cross-platform προτροπές
CrossPlatformPrompter.init(visitor);
// Ενέργειες με βάση την πιθανότητα
this.actOnProbability(visitor);
// Εμφάνιση popup για νέους επισκέπτες
if (visitor.visitCount === 1) {
setTimeout(() => ReminderSystem.showReminderPopup(visitor), CONFIG.popupDelay);
}
// Προγραμματισμός υπενθυμίσεων
ReminderSystem.scheduleReminder(visitor);
// Αρχικοποίηση exit intent
ExitIntent.init(visitor);
// Αρχικοποίηση TikTok handler
TikTokHandler.init();
// Αρχικοποίηση Adsense Optimizer
AdsenseOptimizer.init();
// Gamification επιτεύγματα
if (CONFIG.enableGamification && visitor.visitCount % 5 === 0) {
const gameStatus = IncentiveEngine.getGamificationStatus(visitor);
if (gameStatus) {
this.showAchievement(visitor, gameStatus);
}
}
// Tracking metrics
this.trackReturnMetrics(visitor);
// Εμφάνιση των top υποψηφίων για debugging
const topCandidates = OrderTracker.getTopBuyerCandidates(4);
const remaining = OrderTracker.getRemainingWhistles();
console.log('🎯 Return Visitor Optimizer v2.5 - Cross-Platform Edition', {
visitorId: visitor.visitorId,
source: visitor.source,
visitCount: visitor.visitCount,
returnCount: visitor.returnCount,
returnProbability: Math.round((visitor.returnProbability || 0) * 100) + '%',
purchaseIntent: Math.round((visitor.purchaseIntent || 0) * 100) + '%',
whistleInterest: Math.round((visitor.productInterest?.physicalWhistle || 0) * 100) + '%',
streak: visitor.returnStreak,
quickReturns: visitor.quickReturns || 0,
remainingWhistles: remaining,
isTopCandidate: topCandidates.some(c => c.id === visitor.visitorId),
email: visitor.email ? '✓' : '✗',
hoursSinceLast: Math.round(hoursSinceLast * 10) / 10,
lastVisitTimestamp: new Date(visitor.lastVisitTimestamp).toLocaleString(),
daysSinceChannelVisit: visitor.source !== 'direct' ?
Math.round((Date.now() - visitor.lastChannelVisit) / (24*60*60*1000) * 10) / 10 + ' ημέρες' : 'N/A'
});
if (topCandidates.length > 0) {
console.log('🏆 Top 4 υποψήφιοι για αγορά φυσικής σφυρίχτρας:',
topCandidates.map(c => ({
score: Math.round(c.score),
visits: c.visitor.visitCount,
interest: Math.round((c.visitor.productInterest?.physicalWhistle || 0) * 100) + '%'
}))
);
}
} catch (e) {
console.error('Return optimizer init failed:', e);
}
},
actOnProbability: function(visitor) {
if (!visitor) return;
const remaining = OrderTracker.getRemainingWhistles();
const topCandidates = OrderTracker.getTopBuyerCandidates(4);
const isTopCandidate = topCandidates.some(c => c.id === visitor.visitorId);
if (isTopCandidate && remaining > 0 && !visitor.orders?.physicalWhistle?.completed) {
this.showWhistleOffer(visitor);
}
if (visitor.returnProbability > 0.8) {
const incentives = IncentiveEngine.offerReturnIncentive(visitor);
if (incentives.length > 0) {
this.showReturnOffer(visitor, incentives);
}
}
if (visitor.returnProbability < 0.3 && visitor.visitCount === 1) {
this.showWelcomeOffer(visitor);
}
},
showWhistleOffer: function(visitor) {
if (!visitor) return;
if (document.getElementById('whistleOfferV2')) return;
try {
const offerDiv = document.createElement('div');
offerDiv.id = 'whistleOfferV2';
offerDiv.style.cssText = `
position: fixed;
bottom: 20px;
right: 20px;
background: linear-gradient(135deg, #FF416C 0%, #FF4B2B 100%);
color: white;
padding: 25px;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(255,75,43,0.3);
z-index: 1000000;
max-width: 320px;
font-family: Arial, sans-serif;
animation: slideInRight 0.5s ease;
cursor: pointer;
border: 2px solid gold;
`;
const remaining = OrderTracker.getRemainingWhistles();
offerDiv.innerHTML = `
🔊
Ειδική Προσφορά!
Φυσική Σφυρίχτρα Υψηλής Ποιότητας
Ιδανική για εξωτερικές δραστηριότητες
Αγορά Τώρα
✕
* Προσφορά μόνο για τους πιο ενεργούς επισκέπτες
`;
document.body.appendChild(offerDiv);
document.getElementById('buyWhistleBtn').onclick = function() {
visitor.orders.physicalWhistle.count++;
OrderTracker.registerWhistlePurchase(visitor.visitorId);
offerDiv.innerHTML = `
✅
Ευχαριστούμε για την αγορά σας!
Η παραγγελία σας καταχωρήθηκε.
`;
setTimeout(() => offerDiv.remove(), 3000);
};
document.getElementById('closeWhistleOffer').onclick = function() {
offerDiv.remove();
};
setTimeout(() => {
if (offerDiv.parentNode) offerDiv.remove();
}, 60000);
} catch (e) {
console.warn('Whistle offer failed:', e);
}
},
showReturnOffer: function(visitor, incentives) {
if (!visitor || !incentives || incentives.length === 0) return;
if (visitor.incentivesClaimed && visitor.incentivesClaimed.includes('return_offer')) return;
try {
const offer = incentives[0];
if (!offer) return;
const banner = document.createElement('div');
banner.style.cssText = `
position: fixed;
top: 20px;
right: 20px;
background: #4CAF50;
color: white;
padding: 15px 25px;
border-radius: 50px;
box-shadow: 0 5px 15px rgba(76,175,80,0.3);
z-index: 999999;
font-family: Arial, sans-serif;
cursor: pointer;
animation: slideIn 0.5s ease;
`;
banner.innerHTML = `
🎁 Επιστρέψατε!
${offer.message || 'Αποκλειστική προσφορά για εσάς'}
`;
document.body.appendChild(banner);
banner.onclick = function() {
this.remove();
if (!visitor.incentivesClaimed) visitor.incentivesClaimed = [];
visitor.incentivesClaimed.push('return_offer');
VisitorDB.save();
};
setTimeout(() => banner.remove(), 10000);
} catch (e) {}
},
showWelcomeOffer: function(visitor) {
if (!visitor) return;
try {
const banner = document.createElement('div');
banner.style.cssText = `
position: fixed;
bottom: 20px;
left: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
z-index: 999999;
max-width: 300px;
font-family: Arial, sans-serif;
`;
banner.innerHTML = `
👋 Καλώς ήρθατε!
Εγγραφείτε τώρα και κερδίστε 10% έκπτωση στην πρώτη σας αγορά!
Ενδιαφέρομαι
`;
document.body.appendChild(banner);
setTimeout(() => banner.remove(), 15000);
} catch (e) {}
},
showAchievement: function(visitor, gameStatus) {
if (!visitor || !gameStatus) return;
try {
const badge = document.createElement('div');
badge.style.cssText = `
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
background: #FFD700;
color: #333;
padding: 15px 30px;
border-radius: 50px;
box-shadow: 0 5px 20px rgba(255,215,0,0.3);
z-index: 999999;
font-family: Arial, sans-serif;
animation: slideDown 0.5s ease;
`;
badge.innerHTML = `
🏆 Επίτευγμα!
Επίπεδο ${gameStatus.level} |
${gameStatus.points} πόντοι |
Streak: ${gameStatus.streak} ημέρες
${visitor.quickReturns >= 3 ? ' | ⚡ Speed Demon' : ''}
${visitor.productInterest?.physicalWhistle > 0.7 ? ' | 🔊 Ενδιαφέρον για Σφυρίχτρα' : ''}
`;
document.body.appendChild(badge);
setTimeout(() => badge.remove(), 5000);
} catch (e) {}
},
trackReturnMetrics: function(visitor) {
if (!visitor) return;
if (typeof gtag !== 'undefined') {
try {
gtag('event', 'return_visitor_metrics_v25', {
'visit_count': visitor.visitCount || 0,
'return_count': visitor.returnCount || 0,
'return_probability': Math.round((visitor.returnProbability || 0) * 100),
'purchase_intent': Math.round((visitor.purchaseIntent || 0) * 100),
'whistle_interest': Math.round((visitor.productInterest?.physicalWhistle || 0) * 100),
'streak_days': visitor.returnStreak || 0,
'quick_returns': visitor.quickReturns || 0,
'has_email': visitor.email ? 1 : 0,
'pages_viewed': (visitor.pagesViewed || []).length,
'time_on_site_seconds': Math.round((visitor.timeOnSite || 0) / 1000),
'ad_interactions': visitor.adInteractions || 0,
// ΝΕΟ metrics
'source': visitor.source || 'direct',
'youtube_visits': visitor.channelVisits?.youtube || 0,
'tiktok_visits': visitor.channelVisits?.tiktok || 0
});
} catch (e) {}
}
}
};
// Προσθήκη custom animations
const style = document.createElement('style');
style.textContent = `
@keyframes slideIn {
from { transform: translateX(100px); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
@keyframes slideInRight {
from { transform: translateX(100px); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
@keyframes slideDown {
from { transform: translate(-50%, -100px); opacity: 0; }
to { transform: translate(-50%, 0); opacity: 1; }
}
@keyframes slideUp {
from { transform: translateY(100px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
`;
document.head.appendChild(style);
// Παρακολούθηση χρόνου στη σελίδα
let startTime = Date.now();
const timeInterval = setInterval(() => {
try {
const visitor = VisitorDB.load();
if (visitor) {
visitor.timeOnSite = Date.now() - startTime;
const scrollPercent = (window.scrollY / (document.documentElement.scrollHeight - window.innerHeight)) * 100;
if (scrollPercent > visitor.scrollDepth) {
visitor.scrollDepth = scrollPercent;
}
VisitorDB.save();
}
} catch (e) {}
}, 5000);
// Παρακολούθηση φόρτωσης σελίδας
window.addEventListener('load', () => {
try {
const visitor = VisitorDB.load();
if (visitor) {
const currentPath = window.location.pathname;
if (!visitor.pagesViewed.includes(currentPath)) {
visitor.pagesViewed.push(currentPath);
if (currentPath.includes('product') || currentPath.includes('whistle') || currentPath.includes('σφυρίχτρα')) {
visitor.timeOnProductPages = (visitor.timeOnProductPages || 0) + 1;
}
VisitorDB.save();
}
}
} catch (e) {}
});
// Καθαρισμός interval κατά την αποχώρηση
window.addEventListener('beforeunload', function() {
clearInterval(timeInterval);
try {
const visitor = VisitorDB.load();
if (visitor) {
visitor.timeOnSite = Date.now() - startTime;
VisitorDB.save();
}
} catch (e) {}
});
// Εκκίνηση του optimizer
ReturnOptimizer.init();
})();
What do the icons mean, Discover What Each Icon and Image Represents Welcome to our refreshed e-Repellent home page ! This update helps new visitors and returning users easily understand what every icon , image , and category represents — while also signaling to Google that our content is active, organized, and constantly improving.
The icon is used on the website e-repellent.com as a visual representation of instant and safe flashlight activation through a web-based light controller, without the need for installation or app downloads. With a single tap, the smartphone becomes a practical lighting tool, suitable for night visibility, personal safety, and animal deterrence when combined with the other features of the e-Repellent system.
In the center of the image, the Bluetooth icon is displayed, symbolizing the wireless connection between the smartphone and the speaker. This connection ensures that the sound is transmitted clearly and without cables, allowing the user to place the speaker in a strategic location for maximum effectiveness. Below the Bluetooth icon, the Wi-Fi symbol and the Play button are shown, highlighting the ability to start the sound instantly and remotely, without additional configuration.
On the right side of the image, there is a portable outdoor speaker that plays the ultrasonic and low-frequency sound patterns of the e-Repellent system. The speaker can be placed in gardens, balconies, agricultural areas, roads, or any location where there is a risk of encounters with wild animals. The combination of smartphone + Bluetooth + speaker creates a flexible animal-repellent system that can adapt to different environments, providing safer conditions for both people and animals.
Our new visual icon represents how the e-Repellent system connects modern smart devices with real-time protection while driving or walking outdoors. At the center of the image is the familiar Bluetooth symbol, which highlights the wireless link between your smartphone and an external speaker or your car’s audio system. This connection allows the ultrasonic or low-frequency patterns to be transmitted clearly and without manual setup, ensuring that the repellent function is always ready when you need it. The Bluetooth element also suggests freedom of placement, meaning the speaker or paired device can be positioned in the optimal location for maximum coverage, whether near your vehicle, entrance, garden, or outdoor path. Next to the Bluetooth icon is a simplified illustration of a car with a driver and passenger. This visual emphasizes the Safe-Driving Whistle feature, which is designed to help reduce the chance of unexpected encounters with stray animals such as dogs, cats, or wildlife crossing the road. The icon of the dog placed near the sound waves represents how the emitted audio frequencies encourage animals to move away without causing harm. The goal is to provide a more secure driving experience, especially in areas where visibility is limited or where animals appear unpredictably.
The background colors are chosen to draw clear attention to the main functions and to communicate urgency, safety, and ease of use. Supporting text, such as “Works with Android & iOS,” reinforces that the system is universal and simple to activate with any modern device. Overall, this icon conveys protection, mobility, and intelligent assistance—key values behind the e-Repellent.com platform.
🔊 “Low Playback” – Gentle Sound Mode for Safe Audio Experience In this way, the image enhances the user’s understanding of how to use the low-intensity playback features, the gradual volume increase, and the smart sound modes provided by the e-repellent.com platform, while also promoting responsible and safe listening behavior.
At e-repellent.com , sound testing and playback calibration are performed using advanced audio control algorithms. These algorithms make sure that when you select “Low Playback,” the emitted tone remains smooth, stable, and pleasant to the ear. The purpose of this mode is to protect hearing sensitivity during long listening sessions, ensuring that your smartphone or speaker maintains optimal performance without distortion.
Whether you are testing ultrasonic repellent frequencies or standard playback sounds, the Low Playback option helps create a controlled acoustic environment . It is ideal for verifying your device’s speaker response, monitoring volume levels, and ensuring human-safe frequencies.
Always test your audio at moderate levels before switching to high volume. The Low Playback button serves as your first layer of hearing protection , demonstrating how safe listening can still deliver precise acoustic results.
Visit e-repellent.com
to explore smart sound modes, advanced detection systems, and innovative ways to use controlled audio for safety and animal protection.