HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/thread-self/root/tmp/dateweb_patch_backlog_campaign_tasks.cjs
const fs = require('fs');
const file = 'scripts/growth-backlog.mjs';
let s = fs.readFileSync(file, 'utf8');

if (!s.includes("const mtmCampaigns = parseTable(insights, 'Matomo-Kampagnen');")) {
  s = s.replace("const topRoutes = parseTable(insights, 'Top human-nahe HTML-Routen');", "const topRoutes = parseTable(insights, 'Top human-nahe HTML-Routen');\nconst mtmCampaigns = parseTable(insights, 'Matomo-Kampagnen');\nconst fromSignals = parseTable(insights, 'Interne from-Parameter');");
}

if (!s.includes("Kampagnenlinks ausspielen")) {
  const block = `
if (mtmCampaigns.size === 0 && (markerExists('growth-distribution-plan.mjs') || markerExists('local-distribution-plan.mjs') || markerExists('mtm_campaign'))) {
  tasks.push(priorityLine('P2', 'Kampagnenlinks ausspielen', '/feed/', 'Keine mtm_campaign-Signale im aktuellen Logfenster, obwohl Kampagnen-URLs für Ratgeber und lokale Seiten erzeugt werden.', 'Newsletter-, Social- und Community-Links aus den Distribution-Reports aktiv ausspielen; nach 48 Stunden mtm_campaign und mtm_source im Growth-Insights-Report prüfen.'));
}
if (fromSignals.size > 0) {
  tasks.push(priorityLine('P2', 'Beste from-Parameter priorisieren', '/register/', 'Interne Bridge-Signale sind im Logfenster sichtbar.', 'Top from-Parameter aus Growth Insights auf Register-Referrer und Conversion-Weg prüfen; erfolgreiche CTA-Texte auf ähnliche Routen übertragen.'));
}
`;
  s = s.replace("for (const [route, count] of [...topRoutes.entries()].slice(0, 8)) {", `${block}\nfor (const [route, count] of [...topRoutes.entries()].slice(0, 8)) {`);
}

fs.writeFileSync(file, s, 'utf8');