sendPushSubscription send-push-subscription

AVAILABILITY
Push-Benachrichtigungen für die Web-SDK befinden sich derzeit in der Beta. Die Funktionalität und Dokumentation können sich ändern.

Der Befehl sendPushSubscription registriert Push-Benachrichtigungs-Abonnements bei Adobe Experience Platform. Dieser Befehl verarbeitet das Abrufen von Push-Abonnementdetails aus dem Browser und sendet sie an Ihren konfigurierten Datenstrom. Sie ist ab Version 2.29.0 von Web SDK verfügbar.

Voraussetzungen prerequisites

Stellen Sie vor der Verwendung von sendPushSubscription Folgendes sicher:

  1. Konfigurierte Push-: Richten Sie die pushNotifications Konfigurationseigenschaft mit Ihrem öffentlichen VAPID-Schlüssel ein.
  2. Benutzerberechtigung: Benutzer müssen über die Berechtigung „Benachrichtigung“ verfügen (Notification.permission === "granted")
  3. Service Worker: Ein registrierter Service Worker muss auf Ihrer Site verfügbar sein
  4. Push-Manager-Unterstützung: Der Browser muss Push-Benachrichtigungen unterstützen und die PushManager-API verfügbar haben

Führen Sie den sendPushSubscription Befehl aus, wenn Sie Ihre konfigurierte Instanz der Web-SDK aufrufen. Stellen Sie sicher, dass Sie den configure-Befehl mit konfigurierten Push-Benachrichtigungen aufrufen, bevor Sie den sendPushSubscription-Befehl aufrufen.

alloy("sendPushSubscription")
  .then(() => {
    console.log("Push subscription recorded successfully");
  })
  .catch((error) => {
    console.error("Failed to send push subscription:", error);
  });

Für eine optimale Push-Benachrichtigungsfunktion empfiehlt Adobe die Ausführung des sendPushSubscription Befehls einmal täglich. Diese Häufigkeit stellt sicher, dass:

  • Abonnementdetails bleiben in Adobe Experience Platform aktuell
  • Alle Änderungen an Push-Token oder Abonnementstatus werden erfasst
  • Das Profil des Benutzers wird weiterhin mit den neuesten Push-Benachrichtigungseinstellungen aktualisiert

Sie können dies mit einem ähnlichen Ansatz wie dem folgenden implementieren:

// Check if subscription data was sent today
const lastSent = localStorage.getItem("alloy_push_last_sent");
const today = new Date().toDateString();

if (lastSent !== today) {
  alloy("sendPushSubscription").then(() => {
    localStorage.setItem("alloy_push_last_sent", today);
  });
}

Funktionsweise how-it-works

Der Befehl sendPushSubscription führt die folgenden Aktionen aus:

  1. Validiert Voraussetzungen: Überprüft, ob Push-Benachrichtigungen konfiguriert sind und die Benutzerberechtigung gewährt wird
  2. Wartet auf Identität: Wartet, bis die ECID des Benutzers verfügbar ist
  3. Ruft das Abonnement ab: Ruft das aktive Push-Abonnement vom Service Worker mithilfe des konfigurierten VAPID-Schlüssels ab
  4. Auf Änderungen prüfen: Vergleicht aktuelle Abonnementdetails mit zwischengespeicherten Werten (ECID + Abonnementdetails). Wenn sich die Abonnementdetails nicht geändert haben, protokolliert der Befehl eine Informationsmeldung und gibt sie zurück, ohne eine Netzwerkanfrage zu stellen
  5. Wird an Datenstrom gesendet: Wenn Änderungen erkannt werden, überträgt die Abonnementdaten an Ihren konfigurierten Adobe Experience Platform-Datenstrom
  6. Cache-Aktualisierungen: Speichert die neuen Abonnementdetails für zukünftige Vergleiche

Umgang mit Fehlern error-handling

Häufige Fehlerbedingungen und deren Meldungen:

Fehler
Ursache
"Push notifications module is not configured. No VAPID public key was provided."
Fehlende oder ungültige Konfiguration von Push-Benachrichtigungen
"Service workers are not supported in this browser."
Browser unterstützt keine Service Worker
"Push notifications are not supported in this browser."
Browser unterstützt keine Push-Benachrichtigungen oder Benachrichtigungs-API
"The user has not given permission to send push notifications."
Benutzer hat keine Benachrichtigungsberechtigung erteilt (Notification.permission === "granted")
"No service worker registration was found."
Für die aktuelle Herkunft ist kein Service Worker registriert
"No VAPID public key was provided."
In der Konfiguration fehlt ein gültiger öffentlicher Schlüssel

Daten-Payload data-payload

Der Befehl sendet Push-Benachrichtigungsdaten im folgenden Format:

{
  pushNotificationDetails: [
    {
      appID: "example.com", // Current domain
      token: "...", // Serialized subscription details + ECID
      platform: "web", // Always "web" for Web SDK
      denylisted: false, // Always false
      identity: {
        namespace: {
          code: "ECID",
        },
        id: "12345678901234567890", // User's ECID
      },
    },
  ],
}

Registrieren eines Push-Abonnements über die Tag-Erweiterung „Web SDK" register-push-subscription-tag-extension

Die Web SDK-Tag-Erweiterung, die diesem Feld entspricht, verwendet die Send Push Subscription Aktion innerhalb einer Tag-Regel.

recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1