Geschäftssignale · EndPoint

Business Signals EndPoint

Ihre Website weiß bereits, wie viele Benutzer sie hat, wer sich heute registriert hat, wie viele Artikel oder Profile existieren, wie viele Zahlungen durchgegangen sind und was auf Moderation wartet. Senden Sie diese Zahlen an einen EndPoint und beobachten Sie jede von Ihnen betriebene Website in einem einzigen Dashboard — mit Anomalie-Alerts, Zielen und einem Portfolio-Benchmark. Es ist ein EndPoint, kein Widget: server-to-server, keine persönlichen Daten, nur Zählungen.

01

Was Sie senden können

Jede Zählung, die Sie benennen. Gruppieren Sie sie in eine Kategorie und wir erstellen ein Diagramm, brechen es auf und überwachen es für Sie.

Benutzer

gesamt Benutzer, Registrierungen pro Tag, Abonnenten, Löschungen

Inhalt

Materialien jeder Art — Artikel, Videos, Profile, Listen

Einnahmen

Zahlungsversuche, erfolgreiche Zahlungen, Rückerstattungen — plus abgeleitete Konversion

Moderation

Profile, die auf Löschung warten, gemeldete Elemente, Überprüfungswarteschlangen

Feedback

Kontaktformularnachrichten, Support-Tickets, NPS

Sonst noch etwas

nennen Sie eine Kennzahl und sie erscheint — keine Konfiguration auf unserer Seite

02

Der EndPoint

POSThttps://astrina.io/endpoint/ingestÜbertragen Sie eine Gruppe von Signalen. Auth: Ihr Site-Schlüssel im X-Astrina-Key-Header.
GEThttps://astrina.io/endpoint/pingHeartbeat — gibt ausstehende Befehle zurück, ohne Daten zu senden.
GEThttps://astrina.io/endpoint/insightsZiehen Sie die berechnete Gesundheit dieser Website zurück: aktuelle Werte, Deltas, Ziele, Warnungen und den Median Ihrer anderen Websites.
POSThttps://astrina.io/endpoint/ackBestätigen Sie einen gelieferten Befehl anhand seiner ID.
03

Beispiele

curl -X POST https://astrina.io/endpoint/ingest \
  -H "X-Astrina-Key: YOUR_SITE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "signals": [
      { "metric": "users",              "kind": "gauge", "value": 15230, "category": "users" },
      { "metric": "registrations",      "value": 42,     "category": "users" },
      { "metric": "materials", "kind": "gauge", "value": 842, "dim": "article", "category": "content" },
      { "metric": "materials", "kind": "gauge", "value": 301, "dim": "video",   "category": "content" },
      { "metric": "payment_requests",   "value": 18,     "category": "revenue" },
      { "metric": "payment_success",    "value": 11,     "category": "revenue", "unit": "EUR" },
      { "metric": "feedback",           "value": 3,      "category": "feedback" },
      { "metric": "profiles_to_delete", "kind": "gauge", "value": 5, "category": "moderation",
        "good_dir": "down", "attention": true }
    ]
  }'
<?php
// Run this daily (cron) on your own site. Sends only counts — never personal data.
$key = 'YOUR_SITE_KEY';
$payload = ['signals' => [
    ['metric' => 'users',         'kind' => 'gauge', 'value' => usersTotal(),          'category' => 'users'],
    ['metric' => 'registrations', 'value' => registrationsToday(),                     'category' => 'users'],
    ['metric' => 'payment_requests', 'value' => paymentAttemptsToday(),               'category' => 'revenue'],
    ['metric' => 'payment_success',  'value' => paymentsPaidToday(), 'unit' => 'EUR',  'category' => 'revenue'],
    ['metric' => 'feedback',      'value' => feedbackToday(),                          'category' => 'feedback'],
    ['metric' => 'profiles_to_delete', 'kind' => 'gauge', 'value' => deletionQueue(),
        'category' => 'moderation', 'good_dir' => 'down', 'attention' => true],
]];
$ch = curl_init('https://astrina.io/endpoint/ingest');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-Astrina-Key: YOUR_SITE_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
]);
$resp = json_decode(curl_exec($ch), true);
// Two-way: act on anything Astrina asks for (e.g. a fresh full snapshot).
foreach ($resp['requests'] ?? [] as $cmd) {
    if ($cmd['cmd'] === 'full_snapshot') { /* push your whole history, then: */ }
    // acknowledge so it is not re-sent:
    // curl https://astrina.io/endpoint/ack  -d '{"id": ' . $cmd['id'] . '}'
}
<?php
// One-off: backfill a year of daily registrations so the charts start full.
$signals = [];
foreach (registrationsByDay('-365 days') as $day => $n) {   // 'YYYY-MM-DD' => int
    $signals[] = ['metric' => 'registrations', 'value' => $n, 'day' => $day, 'category' => 'users'];
}
// up to 2000 points per request
foreach (array_chunk($signals, 2000) as $chunk) {
    postJson('https://astrina.io/endpoint/ingest', ['signals' => $chunk], 'YOUR_SITE_KEY');
}
# Pull this site's computed health BACK (current values, 30-day deltas, target
# progress, open alerts, and the median across YOUR OTHER sites) to show it in-app:
curl "https://astrina.io/endpoint/insights" -H "X-Astrina-Key: YOUR_SITE_KEY"

Ersetzen Sie YOUR_SITE_KEY durch den Schlüssel aus Ihrem Dashboard. Jede Website hat ihren eigenen Schlüssel; er autorisiert nur das Übertragen der Zahlen dieser einen Website.

04

Signalfelder

FeldBedeutung
metricerforderlichAny key you choose — users, registrations, materials, payment_success… Stored under this key forever.
valueerforderlichThe number. For a gauge it is the current total; for a count it is that period's amount.
kindoptional"gauge" (a snapshot total, e.g. total users now) or "count" (per-day amount, the default).
dayoptionalYYYY-MM-DD. Defaults to today. Send past days to backfill; re-sending a day overwrites it.
dimoptionalA breakdown value, e.g. the material type "article"/"video". One series per dimension.
categoryoptionalusers · content · revenue · moderation · feedback · engagement · custom — groups the metric.
unitoptionalA short unit shown next to the number, e.g. "EUR", "GB".
good_diroptional"up" (default), "down" (lower is better, e.g. a deletion queue) or "none".
attentionoptionaltrue pins the metric to the cross-site cockpit as a "needs clearing" number.
eventoptionaltrue + a count with no day increments today instead of overwriting it.
05

Zwei-Wege-Design

Befehle zurück

Jede Übertragung gibt alle Befehle zurück, die Sie im Dashboard in die Warteschlange gestellt haben — z.B. „eine vollständige Momentaufnahme übertragen“. Ihre Website führt sie aus und bestätigt.

Einblicke zurück

Rufen Sie /endpoint/insights auf, um Ihre eigenen Live-Zahlen, Ziele und Warnungen in Ihrem Administrationspanel anzuzeigen.

Portfolio-Benchmark

Wir geben den Median jeder Kennzahl über Ihre anderen Websites zurück, sodass eine Website zeigen kann, wie sie im Vergleich zu den anderen abschneidet.

Anomalieüberwachung

Wir überwachen scharfe Rückgänge, Spitzen, eine stille Integration und einen Zahlungstrichter, der nicht mehr konvertiert — und kennzeichnen sie.

Business Signals EndPoint

Was diese Seite beantwortet

  • business Signals EndPoint
  • business Signals EndPoint Anleitung
  • business Signals EndPoint erklärt
  • business Signals EndPoint Tutorial
  • einstieg in Business Signals EndPoint
  • business Signals EndPoint Best Practices
  • business Signals EndPoint Schritt für Schritt
  • was ist Business Signals EndPoint
  • business Signals EndPoint für Anfänger
  • business Signals EndPoint Checkliste
  • business Signals EndPoint Beispiele
  • warum Business Signals EndPoint wichtig ist