Wie richte ich OneSignal so ein, dass Benachrichtigungen nur zu bestimmten Zeiten gesendet werden?

Melden
  1. Grundlegendes Scheduling direkt in der OneSignal-Konsole
  2. Verwenden von Delivery Time Window Einschränkungen (Time Constraints)
  3. Serverseitiges Timing: Benachrichtigungen nur zu bestimmten Zeiten senden
  4. Fazit

OneSignal ist eine beliebte Plattform für Push-Benachrichtigungen, die es ermöglicht, Nachrichten direkt an Nutzer auszuspielen. Wenn du Benachrichtigungen nur zu bestimmten Zeiten senden möchtest, gibt es verschiedene Möglichkeiten, dies zu erreichen, sowohl über die OneSignal-Konsole als auch über die API. Im Folgenden findest du eine ausführliche Anleitung.

Grundlegendes Scheduling direkt in der OneSignal-Konsole

Die einfachste Möglichkeit Benachrichtigungen zeitlich zu steuern, ist das Planen von Nachrichten in der OneSignal-Weboberfläche. Wenn du eine neue Nachricht erstellst, kannst du unter Schedule den genauen Zeitpunkt festlegen, zu dem die Benachrichtigung verschickt werden soll. So kannst du z. B. einstellen, dass eine Benachrichtigung erst morgen um 9 Uhr gesendet wird. Für regelmäßig wiederkehrende Zeitfenster ist diese Methode jedoch nicht ausreichend, da OneSignal auf der Konsole keine fortlaufenden zeitlichen Einschränkungen bietet.

Verwenden von Delivery Time Window Einschränkungen (Time Constraints)

OneSignal erlaubt es, eine Delivery Time Window Option zu nutzen, die sicherstellt, dass Benachrichtigungen nur innerhalb eines bestimmten Zeitraums pro Tag zugestellt werden. Dies ist besonders praktisch, um z. B. Benachrichtigungen nur zwischen 9 und 18 Uhr zu versenden. Diese Funktion kann über die API angesprochen werden, indem man das Attribut delivery_time_window nutzt.

Beispiel: Mit der REST API überträgst du das Zeitfenster in Sekunden und in der lokalen Zeitzone des Clients.

{ "app_id": "DEINE_APP_ID", "contents": {"en": "Deine Nachricht"}, "included_segments": , "delivery_time_window_start": 32400, // 9 Uhr in Sekunden (9 * 3600) "delivery_time_window_end": 64800 // 18 Uhr in Sekunden (18 * 3600)}

Dadurch werden Benachrichtigungen nur zwischen 9:00 und 18:00 Uhr lokal beim Nutzer ausgeliefert. Diese Einstellung ist auf Nutzerbasis und funktioniert vor allem bei mobilen Geräten gut.

Serverseitiges Timing: Benachrichtigungen nur zu bestimmten Zeiten senden

Wenn du noch mehr Kontrolle benötigst, z. B. wiederkehrende Benachrichtigungen zu bestimmten Tageszeiten oder Wochen, solltest du die Benachrichtigungen serverseitig planen. Das bedeutet, dass dein eigener Server oder ein Cloud-Service wie AWS Lambda, Google Cloud Functions oder ein Cronjob externe Trigger einrichtet, welche dann die OneSignal-API anstößt.

Hierbei kannst du mit gängigen Zeitplanern dieselben Zeitfenster festlegen, z. B. nur Werktage zwischen 8 und 17 Uhr, und innerhalb dieses Zeitraums Deine Benachrichtigungen per API senden.

Ein Beispiel mit Node.js und node-cron: Du richtest einen Cronjob ein, der jede Stunde oder alle 15 Minuten die Nachrichten absetzt, jedoch nur innerhalb des gewünschten Zeitfensters.

const cron = require(node-cron);const OneSignal = require(onesignal-api-client);const client = new OneSignal.Client({ userAuthKey: DEIN_USER_AUTH_KEY, app: { appAuthKey: DEIN_APP_AUTH_KEY, appId: DEINE_APP_ID }});cron.schedule(0 * * * *, () => { const currentHour = new Date().getHours(); if (currentHour >= 9 && currentHour { console.log(Benachrichtigung gesendet, response); }).catch(e => { console.error(Fehler beim Senden:, e); }); } else { console.log(Außerhalb des Zeitfensters - keine Nachricht gesendet); }});

Fazit

OneSignal bietet auf einfache Weise das Planen von Nachrichten an und mit dem Feature Delivery Time Window kannst du bestimmen, dass Nachrichten nur zu bestimmten Tageszeiten ausgeliefert werden. Für komplexere zeitliche Steuerungen eignet sich allerdings eine serverseitige Verarbeitung mit Cronjobs oder anderen Zeitplanern, welche via API die Benachrichtigungen nur zu definierten Zeiten an OneSignal übermitteln.

0
0 Kommentare