PageSourceSearch

https://attrixus.de/

html attrixus.de collected 2026-10-01 23:48:30 UTC 13,629 bytes, 292 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/0421ca33e_attriXus-X-500x500.png" rel="icon" sizes="500x500" type="image/png"/>
39  <link href="https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/0421ca33e_attriXus-X-500x500.png" rel="apple-touch-icon"/>
40  <link href="https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/0421ca33e_attriXus-X-500x500.png" rel="shortcut icon"/>
41  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
42  <meta content="no-referrer" name="referrer"/>
43  <link href="/manifest.json" rel="manifest"/>
44  <title>
45   attriXus
46  </title>
47  <meta content="Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Kunden zurückverfolgt und zeigt, welche Werbekampagnen wirklich zu Anfragen und Verkäufen führen." name="description"/>
48  <meta content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" name="robots"/>
49  <meta content="attriXus GmbH" name="author"/>
50  <meta content="de-DE" name="language"/>
51  <meta content="DE" name="geo.region"/>
52  <meta content="Deutschland" name="geo.placename"/>
53  <meta content="#FC9224" name="theme-color"/>
54  <link href="https://fonts.googleapis.com" rel="preconnect"/>
55  <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
56  <link as="style" href="https://fonts.googleapis.com/css2?family=Questrial&amp;display=swap" rel="preload"/>
57  <link href="https://fonts.googleapis.com/css2?family=Questrial&amp;display=swap" rel="stylesheet"/>
58  <meta content="website" property="og:type"/>
59  <meta content="attriXus" property="og:title"/>
60  <meta content="Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Kunden zurückverfolgt und zeigt, welche Werbekampagnen wirklich zu Anfragen und Verkäufen führen." property="og:description"/>
61  <meta content="https://attrixus.de" property="og:url"/>
62  <meta content="attriXus" property="og:site_name"/>
63  <meta content="summary_large_image" name="twitter:card"/>
64  <meta content="attriXus" name="twitter:title"/>
65  <meta content="Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Kunden zurückverfolgt und zeigt, welche Werbekampagnen wirklich zu Anfragen und Verkäufen führen." name="twitter:description"/>
66  
66<script type="application/ld+json">
67   {
68      "@context": "https://schema.org",
69      "@type": "Organization",
70      "name": "attriXus GmbH",
71      "url": "https://www.attrixus.de",
72      "email": "[email protected]",
73      "logo": "https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/0421ca33e_attriXus-X-500x500.png",
74      "description": "attriXus zeigt Unternehmen, welche Online-Werbung wirklich Anfragen, Leads und Verkäufe bringt – und wo Marketingbudget verpufft.",
75      "foundingDate": "2018",
76      "areaServed": "DE",
77      "knowsAbout": ["Marketing Attribution", "Customer Journey Tracking", "Multi-Touch Attribution", "Conversion Tracking", "First-Party-Tracking", "Server-Side Tracking", "Performance Marketing", "Leadgenerierung", "Marketingbudget-Steuerung"]
78    }
79  </script>
79
80  
80<script type="application/ld+json">
81   {
82      "@context": "https://schema.org",
83      "@type": "WebSite",
84      "name": "attriXus",
85      "url": "https://www.attrixus.de",
86      "inLanguage": "de-DE",
87      "publisher": {
88        "@type": "Organization",
89        "name": "attriXus GmbH",
90        "url": "https://www.attrixus.de"
91      }
92    }
93  </script>
93
94  <!-- Google Analytics (gtag.js) mit Consent Mode v2: Consent aus LocalStorage VOR gtag config angewendet -->
95  <link crossorigin="" href="https://www.googletagmanager.com" rel="preconnect"/>
vendor: 69 bytes, lines 95-96
95
96  <script async="" src="https://www.googletagmanager.com/gtag/js?id=
96G-P0WM9LYKSE
vendor: 17 bytes, lines 96-98
96">
97  </script>
98  
98<script>
99   // Consent aus LocalStorage lesen BEFORE gtag config — keine Timing-Lücke
100      var _axConsent = 'denied';
101      try {
102        var _axSaved = localStorage.getItem('attrixus-consent');
103        if (_axSaved) {
104          var _axPrefs = JSON.parse(_axSaved);
105          if (_axPrefs && _axPrefs.analytics) _axConsent = 'granted';
106        }
107      } catch (e) {}
108      window.dataLayer = window.dataLayer || [];
109      function gtag(){dataLayer.push(arguments);}
110      window.gtag = gtag;
111      gtag('consent', 'default', {
112        'ad_storage': _axConsent,
113        'ad_user_data': _axConsent,
114        'ad_personalization': _axConsent,
115        'analytics_storage': _axConsent,
116        'wait_for_update': 500
117      });
118      gtag('js', new Date());
119      gtag('config', 'G-P0WM9LYKSE', { 'anonymize_ip': true });
120  </script>
120
121  
121<script crossorigin="" src="/assets/index-BZCpdEMk.js" type="module">
122  </script>
122
123  <link crossorigin="" href="/assets/index-CKuZmjqy.css" rel="stylesheet"/>
124  
124<script type="module">
125   if (window.self === window.top) {
126  let lastPath = "";
127  function getPageNameFromPath(path) {
128    const segments = path.split("/").filter(Boolean);
129    return segments[0] || null;
130  }
131  function trackPageView() {
132    const path = window.location.pathname;
133    if (path === lastPath) return;
134    lastPath = path;
135    const pageName = getPageNameFromPath(path) || "home";
136    const appId = "6a4ffb1e5e2f33d33be7b8a6";
137    if (!appId) return;
138    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
139      method: "POST",
140    }).catch(() => {});
141  }
142  const originalPushState = history.pushState.bind(history);
143  history.pushState = function (...args) {
144    originalPushState(...args);
145    trackPageView();
146  };
147  const originalReplaceState = history.replaceState.bind(history);
148  history.replaceState = function (...args) {
149    originalReplaceState(...args);
150    trackPageView();
151  };
152  window.addEventListener("popstate", trackPageView);
153  trackPageView();
154}
155  </script>
155
156  <meta content="https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/21c0a222a_logo.jpg/v1/fill/w_1200,h_630/21c0a222a_logo.jpg" property="og:image"/>
157  <meta content="https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/21c0a222a_logo.jpg/v1/fill/w_1200,h_630/21c0a222a_logo.jpg" name="twitter:image"/>
158  <meta content="https://attrixus.de" name="twitter:url"/>
159  
159<script>
160   (function () {
161  var titles = {"/login": "Login | attriXus", "/": "attriXus", "/glossar": "Glossar | attriXus", "/impressum": "Impressum | attriXus", "/datenschutz": "Datenschutz | attriXus", "/magazin": "Magazin | attriXus", "/ueber-uns": "Ueber Uns | attriXus", "/termin": "Termin | attriXus", "/home": "attriXus"};
162  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
163  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
164  var dashed = function (s) {
165    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
166  };
167  var decode = function (s) {
168    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
169    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
170    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
171  };
172  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
173  var norm = function (path) {
174    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
175    return parts.length ? "/" + parts.join("/") : "/";
176  };
177  var lastPath = location.pathname, written = document.title, on = true;
178  var sync = function () {
179    // Path only: a hash/query change is the same page, and the SDK strips its own auth
180    // params with replaceState -- neither must clobber a server-rendered title in place.
181    if (!on || location.pathname === lastPath) return;
182    lastPath = location.pathname;
183    if (document.title !== written) { on = false; return; }
184    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
185    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
186    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
187    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
188    // a redirect landing on an unmapped path would bake the placeholder into the stored
189    // snapshot. Leaving the title alone degrades to today's behavior instead.
190    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
191    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
192    // dashes there, and the client cannot tell the two apart. The map emits every reachable
193    // shape per segment instead (_client_url_variants).
194    var title = titles[norm(location.pathname)];
195    if (title === undefined) return;
196    document.title = title;
197    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
198    // keeping the assigned string would make the next sync() read our own write as the app's.
199    written = document.title;
200  };
201  var wrap = function (fn) {
202    // The history entry is already pushed by the time sync() runs, so a throw here would
203    // surface inside the host app's router and break navigation. This is injected into apps
204    // we cannot test, so it swallows rather than trusting the trace.
205    return function () {
206      var r = fn.apply(this, arguments);
207      try { sync(); } catch (e) {}
208      return r;
209    };
210  };
211  history.pushState = wrap(history.pushState);
212  history.replaceState = wrap(history.replaceState);
213  window.addEventListener("popstate", sync);
214})();
215  </script>
215
216  <meta content="yes" name="mobile-web-app-capable"/>
217  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
218  <meta content="attriXus" name="apple-mobile-web-app-title"/>
219  <link href="https://attrixus.de" rel="canonical"/>
220  
220<script data-seo-source="builder" type="application/ld+json">
221   {"name": "attriXus", "@context": "https://schema.org", "@type": "WebSite", "url": "https://attrixus.de"}
222  </script>
222
223  
223<script data-seo-source="builder" type="application/ld+json">
224   {"name": "attriXus", "logo": "https://media.base44.com/images/public/6a4ffb1e5e2f33d33be7b8a6/80361af21_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://attrixus.de"}
225  </script>
225
226 </head>
227 <body>
228  <div id="root">
229   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
230    <main>
231     <header>
232      <h1>
233       attriXus
234      </h1>
235      <p>
236       Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Kunden zurückverfolgt und zeigt, welche Werbekampagnen wirklich zu Anfragen und Verkäufen führen.
237      </p>
238     </header>
239     <nav aria-label="Pages">
240      <h2>
241       Pages
242      </h2>
243      <ul>
244       <li>
245        <a href="/login">
246         Login
247        </a>
248        — Login on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
249       </li>
250       <li>
251        <a href="/glossar">
252         Glossar
253        </a>
254        — Glossar on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
255       </li>
256       <li>
257        <a href="/impressum">
258         Impressum
259        </a>
260        — Impressum on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
261       </li>
262       <li>
263        <a href="/datenschutz">
264         Datenschutz
265        </a>
266        — Datenschutz on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
267       </li>
268       <li>
269        <a href="/magazin">
270         Magazin
271        </a>
272        — Magazin on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
273       </li>
274       <li>
275        <a href="/ueber-uns">
276         Ueber Uns
277        </a>
278        — Ueber Uns on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
279       </li>
280       <li>
281        <a href="/termin">
282         Termin
283        </a>
284        — Termin on attriXus. Die Analyse-Plattform, die Marketing-Budgets transparent macht, den Weg jedes Ku.
285       </li>
286      </ul>
287     </nav>
288    </main>
289   </div>
290  </div>
291 </body>
292</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.