Skapa och skicka push-meddelanden
Lär dig skapa push-meddelanden för mobilappar med Experience Platform Mobile SDK och Journey Optimizer.
Med Journey Optimizer kan ni skapa resor och skicka meddelanden till utvalda målgrupper. Innan du skickar push-meddelanden med Journey Optimizer måste du se till att rätt konfigurationer och integreringar finns på plats. Om du vill veta mer om dataflödet för push-meddelanden i Journey Optimizer kan du läsa dokumentation.
Förutsättningar
-
Programmet har skapats och körts med SDK:er installerade och konfigurerade.
-
Konfigurera appen för Adobe Experience Platform.
-
Åtkomst till Journey Optimizer och tillräcklig behörighet enligt beskrivningen här. Du behöver även tillräcklig behörighet för följande Journey Optimizer-funktioner.
- Skapa en appyta.
- Skapa en resa.
- Skapa ett meddelande.
- Skapa meddelandeförinställningar.
-
Betalat Apple-utvecklarkonto med tillräcklig åtkomst för att skapa certifikat, identifierare och nycklar.
-
Fysisk iOS-enhet eller simulator för testning.
Utbildningsmål
I den här lektionen ska du
- Registrera program-ID med Apple Push Notification-tjänsten (APN:er).
- Skapa en appyta i Journey Optimizer.
- Uppdatera ditt schema så att det inkluderar push-meddelandefält.
- Installera och konfigurera taggtillägget för Journey Optimizer.
- Uppdatera appen för att registrera Journey Optimizer-taggtillägget.
- Validera inställningar i Assurance.
- Skicka ett testmeddelande från Assurance
- Definiera din egen push-meddelandehändelse, resa och upplevelse i Journey Optimizer.
- Skicka ditt eget push-meddelande inifrån appen.
Inställningar
Registrera program-ID med APN:er
Följande steg är inte Adobe Experience Cloud-specifika och har utformats för att vägleda dig genom APN-konfigurationen.
Skapa en privat nyckel
-
Gå till Apple utvecklarportal Tangenter.
-
Om du vill skapa en nyckel väljer du +.
-
Ange en Nyckelnamn.
-
Välj Tjänsten Apple Push Notification (APN) kryssrutan.
-
Välj Fortsätt.
-
Granska konfigurationen och välj Registrera.
-
Ladda ned
.p8
privat nyckel. Den används senare i konfigurationen för appytan i den här lektionen. -
Anteckna Nyckel-ID. Den används i appytskonfigurationen.
-
Anteckna Team-ID. Den används i appytskonfigurationen.
Ytterligare dokumentation kan hittades här.
Lägg till en appyta i datainsamling
-
Från Gränssnitt för datainsamling, markera Appytor till vänster.
-
Om du vill skapa en konfiguration väljer du Skapa appyta.
-
Ange en Namn för konfigurationen, till exempel
Luma App Tutorial
. -
Från Konfiguration av mobilprogram, markera Apple iOS.
-
Ange programpaket-ID för mobilappen i Program-ID (iOS Bundle-ID) fält. Till exempel:
com.adobe.luma.tutorial.swiftui
. -
Aktivera Push-autentiseringsuppgifter för att lägga till dina inloggningsuppgifter.
-
Dra och släpp
.p8
Autentiseringsnyckel för push-meddelanden i Apple -fil. -
Ange Nyckel-ID, en sträng med 10 tecken som tilldelas när
p8
auth key. Den finns under Tangenter i Certifikat, identifierare och profiler på Apple Developer Portal. Se även Skapa en privat nyckel. -
Ange Team-ID. Team-ID är ett värde som finns under medlemskap eller högst upp på Apple Developer Portal-sidan. Se även Skapa en privat nyckel.
-
Välj Spara.
Uppdatera datastream-konfiguration
Uppdatera Experience Edge-konfigurationen för att säkerställa att data som skickas från din mobilapp till Edge Network vidarebefordras till Journey Optimizer.
-
I gränssnittet för datainsamling väljer du Datastreams och välj till exempel din datastream Luma Mobile App.
-
Välj for Experience Platform och markera Redigera på snabbmenyn.
-
I Datastreams > > Adobe Experience Platform skärm:
-
Om inte redan är markerat väljer du AJO-push-profildatauppsättning från Profildatauppsättning. Den här profildatauppsättningen krävs när du använder
MobileCore.setPushIdentifier
API-anrop (se Registrera enhetstoken för push-meddelanden) som ser till att den unika identifieraren för push-meddelanden (alias push-identifierare) lagras som en del av användarens profil. -
Adobe Journey Optimizer är markerat. Se Adobe Experience Platform-inställningar för mer information.
-
Om du vill spara din datastream-konfiguration väljer du Spara.
-
Installera tillägget Journey Optimizer-taggar
För att din app ska fungera med Journey Optimizer måste du uppdatera din taggegenskap.
-
Navigera till Taggar > Tillägg > Katalog,
-
Öppna egenskapen, till exempel Luma Mobile App Tutorial.
-
Välj Katalog.
-
Sök efter Adobe Journey Optimizer tillägg.
-
Installera tillägget.
-
I Installera tillägg dialog
-
Välj en miljö, till exempel Utveckling.
-
Välj AJO Push Tracking Experience, händelsedatauppsättning datauppsättning från Händelsedatauppsättning lista.
-
Välj Spara i bibliotek och bygge.
-
Validera inställningar med Assurance
-
Granska installationsanvisningar för att ansluta simulatorn eller enheten till Assurance.
-
Välj Konfigurera.
-
Välj nästa Push-felsökning.
-
Välj Spara.
-
Välj Push-felsökning från vänster navigering.
-
Välj Validera inställningar -fliken.
-
Välj din enhet från Klient lista.
-
Bekräfta att inga fel visas.
-
Välj Skicka testöverföring -fliken.
-
(valfritt) Ändra standardinformationen för Titel och Brödtext
-
Välj Skicka meddelande om testpush.
-
Kontrollera Testresultat.
-
Du bör se push-meddelandet för testningen visas i din app.
{width="300"}
Signering
Signera Luma-appen krävs för att skicka push-meddelanden och kräver ett betalt Apple-utvecklarkonto.
Så här uppdaterar du signeringen för din app:
-
Gå till appen i Xcode.
-
Välj Luma i projektnavigatorn.
-
Välj Luma mål.
-
Välj Signering och funktioner -fliken.
-
Konfigurera Hantera signering automatiskt, Team och Paketidentifierare eller använd dina specifika Apple-utvecklingskonfigurationer.
note important IMPORTANT Se till att du använder en unik källidentifierare och ersätt com.adobe.luma.tutorial.swiftui
källidentifierare eftersom varje källidentifierare måste vara unik. Vanligtvis använder du ett omvänt DNS-format för paket-ID-strängar, somcom.organization.brand.uniqueidentifier
. I den färdiga versionen av den här självstudiekursen användscom.adobe.luma.tutorial.swiftui
.{modal="regular"}
Lägg till funktioner för push-meddelanden i appen
-
Välj Luma från MÅLGRUPPER väljer du Signering och funktioner väljer du + Funktioner knapp och sedan markera Push-meddelanden. Detta gör att din app kan ta emot push-meddelanden.
-
Sedan måste du lägga till ett meddelandetillägg i programmet. Gå tillbaka till General och väljer + ikonen längst ned i MÅLGRUPPER -avsnitt.
-
Du uppmanas att välja en mall för det nya målet. Välj Meddelandetjänsttillägg välj Nästa.
-
I nästa fönster använder du
NotificationExtension
som tilläggets namn och klicka på Slutför -knappen.
Du bör nu ha ett tillägg för push-meddelanden tillagt i appen, som liknar skärmen nedan.
Implementera Journey Optimizer i appen
Som tidigare nämnts tillhandahåller installation av ett mobiltaggtillägg bara konfigurationen. Därefter måste du installera och registrera Messaging SDK. Om de här stegen inte är tydliga går du igenom Installera SDK:er -avsnitt.
-
I Xcode kontrollerar du att AEP Messaging läggs till i listan över paket i paketberoenden. Se Swift Package Manager.
-
Navigera till Luma > Luma > AppDelegate i Xcode Project-navigatorn.
-
Säkerställ
AEPMessaging
är en del av din lista över importer.import AEPMessaging
-
Säkerställ
Messaging.self
är en del av den array med tillägg som du registrerar.code language-swift let extensions = [ AEPIdentity.Identity.self, Lifecycle.self, Signal.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self, UserProfile.self, Places.self, Messaging.self, Optimize.self, Assurance.self ]
Registrera enhetstoken för push-meddelanden
-
Lägg till
MobileCore.setPushIdentifier
API tillfunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
funktion.code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)
Den här funktionen hämtar enhetstoken som är unik för den enhet som appen är installerad på. Ställer sedan in token för leverans av push-meddelanden med den konfiguration som du har konfigurerat och som är beroende av Apple Push Notification-tjänst (APN:er).
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])
Anger om push-meddelanden använder en APN-sandlåda eller produktionsserver för att skicka push-meddelanden. När du testar din app i simulatorn eller på en enhet ska du kontrollera att messaging.useSandbox
är inställd på true
så att du får push-meddelanden. När du distribuerar din app för produktion för att testa med Apple Testflight måste du ange messaging.useSandbox
till false
annars kan produktionsappen inte ta emot push-meddelanden.Skapa ett eget push-meddelande
Om du vill skapa ett eget push-meddelande måste du definiera en händelse i Journey Optimizer som utlöser en resa som tar hand om att skicka ett push-meddelande.
Uppdatera ditt schema
Du ska definiera en ny händelsetyp som ännu inte är tillgänglig som en del av listan med händelser som definieras i ditt schema. Du använder den här händelsetypen senare när du utlöser push-meddelanden.
-
I användargränssnittet för Journey Optimizer väljer du Scheman från den vänstra listen.
-
Välj Bläddra i tabbfältet.
-
Välj ditt schema, till exempel Luma Mobile App Event Schema för att öppna den.
-
I schemaredigeraren:
-
Välj eventType fält.
-
I Fältegenskaper bläddra nedåt för att se en lista över möjliga värden för händelsetypen. Välj Lägg till rad och lägga till
application.test
som VÄRDE ochTest event for push notification
somDISPLAY NAME
. -
Välj Använd.
-
Välj Spara.
-
Definiera en händelse
Med händelser i Journey Optimizer kan du utlösa resor åt gången för att skicka meddelanden, till exempel push-meddelanden. Se Om händelser för mer information.
-
I användargränssnittet för Journey Optimizer väljer du Konfigurationer från den vänstra listen.
-
I Kontrollpanel väljer du Hantera knappen i Händelser platta.
-
I Händelser skärm, välja Skapa händelse.
-
I Redigera händelse1 ruta:
-
Retur
LumaTestEvent
som Namn av händelsen. -
Ange en Beskrivning, till exempel
Test event to trigger push notifications in Luma app
. -
Välj det händelseschema för mobilappsupplevelsen som du skapade tidigare i Skapa ett XDM-schema från Schema lista, till exempel Luma Mobile App Event Schema v.1.
-
Välj bredvid Fält lista.
I Fält kontrollerar du att följande fält är markerade (ovanpå de standardfält som alltid är markerade (_id, id och tidsstämpel). Du kan växla mellan Markerad, Alla och Primär eller använder fält.
- Identifierat program (id),
- Händelsetyp (eventType),
- Primär (primär).
Välj sedan OK.
-
Välj bredvid Händelse-id-villkor fält.
-
I Lägg till ett händelse-id-villkor dialogruta, dra och släppa Händelsetyp (eventType) till Dra och släpp ett element här.
-
Bläddra nedåt i poverteraren och välj application.test (som är den händelsetyp som du lade till tidigare i listan över händelsetyper som en del av Uppdatera ditt schema). Bläddra sedan uppåt och uppåt och välj OK.
-
Välj OK för att spara villkoret.
-
-
Välj ECID (ECID) från Namnutrymme lista. Automatiskt Profilidentifierare fältet är ifyllt med ID för det första elementet i nyckel-ECID för map identityMap.
-
Välj Spara.
-
Du har just skapat en händelsekonfiguration som baseras på det händelseschema för mobilappsupplevelser som du skapade tidigare som en del av den här självstudien. Den här händelsekonfigurationen kommer att filtrera inkommande upplevelsehändelser med din specifika händelsetyp (application.test
), så bara händelser av den typen, som initierats från din mobilapp, kommer att utlösa den resa du bygger i nästa steg. I ett verkligt scenario kanske du vill skicka push-meddelanden från en extern tjänst, men samma koncept gäller: från det externa programmet skickar du en upplevelsehändelse till Experience Platform som innehåller specifika fält som du kan använda för att tillämpa villkor på innan dessa händelser utlöser en resa.
Skapa resan
Nästa steg är att skapa den resa som utlöser sändningen av push-meddelandet när du får den rätta händelsen.
-
I användargränssnittet för Journey Optimizer väljer du Resor från den vänstra listen.
-
Välj Skapa resa.
-
I Reseegenskaper panel:
-
Ange en Namn för resan, till exempel
Luma - Test Push Notification Journey
. -
Ange en Beskrivning för resan, till exempel
Journey for test push notifications in Luma mobile app
. -
Säkerställ Tillåt återinträde är markerad och inställd Vänteperiod för återinträde till 30 Sekunder.
-
Välj OK.
-
-
Tillbaka på arbetsytan, från HÄNDELSER, dra och släpp LumaTestEvent på arbetsytan där den visas Välj en anmälningshändelse eller läsmålgruppsaktivitet.
- I Händelser: LumaTestEvent panel, ange en Etikett, till exempel
Luma Test Event
.
- I Händelser: LumaTestEvent panel, ange en Etikett, till exempel
-
Från ÅTGÄRDER listruta, dra och släppa Push på till höger om LumaTestEvent aktivitet. I Åtgärder: Skjut ruta:
-
Ange en Etikett, till exempel
Luma Test Push Notification
, tillhandahåller Beskrivning, till exempelTest push notification for Luma mobile app
, markera Transactional från Kategori lista och markera Luma från Penselyta. -
Välj Redigera innehåll för att börja redigera det faktiska push-meddelandet.
I Push-meddelande redigerare:
-
Ange en Titel, till exempel
Luma Test Push Notification
och ange Brödtext, till exempelTest push notification for Luma mobile app
. -
Du kan också ange en länk till en bild (.png eller .jpg) i Lägg till media. Om du gör det blir bilden en del av push-meddelandet.
-
Om du vill spara och lämna redigeraren väljer du .
-
-
Om du vill spara och slutföra definitionen för push-meddelanden väljer du OK.
-
-
Resan ska se ut så här nedan. Välj Publicera för att publicera och aktivera din resa.
Utlös push-meddelandet
Du har alla ingredienser på plats för att skicka ett push-meddelande. Det som återstår är hur detta push-meddelande ska utlösas. Det är alltså detsamma som du har sett tidigare: skicka bara en upplevelsehändelse med rätt nyttolast (som i Händelser).
Den här gången har den upplevelsehändelse du ska skicka inte skapats för att skapa en enkel XDM-ordlista. Du kommer att använda en struct
som representerar en nyttolast för push-meddelanden. Att definiera en dedikerad datatyp är ett annat sätt att implementera händelsenyttolaster för att skapa upplevelser i ditt program.
-
Navigera till Luma > Luma > Modell > XML > TestPushPayload i Xcode Project navigator och kontrollera koden.
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }
Koden är en representation av följande enkla nyttolast som du ska skicka för att utlösa testresan för push-meddelanden
code language-json { "eventType": string, "application" : [ "id": string ] }
-
Navigera till Luma > Luma > Utils > MobileSDK i Xcode Project navigator och lägg till följande kod i
func sendTestPushEvent(applicationId: String, eventType: String)
:code language-swift // Create payload and send experience event Task { let testPushPayload = TestPushPayload( application: Application( id: applicationId ), eventType: eventType ) // send the final experience event await sendExperienceEvent( xdm: testPushPayload.asDictionary() ?? [:] ) }
Den här koden skapar en
testPushPayload
-instans med de parametrar som har angetts för funktionen (applicationId
ocheventType
) och sedan anropsendExperienceEvent
när nyttolasten konverteras till ett lexikon. Den här koden, som nu även tar hänsyn till asynkrona aspekter av att anropa Adobe Experience Platform SDK genom att använda Swift-modellen för samtidighet baserat påawait
ochasync
. -
Navigera till Luma > Luma > Views > General > ConfigView i Xcode Project-navigatorn. I definitionen för knappen Push Notification (Push-meddelande) lägger du till följande kod för att skicka händelsenyttolasten för testpush-meddelanden för att utlösa din resa när användaren trycker på knappen.
code language-swift // Setting parameters and calling function to send push notification Task { let eventType = testPushEventType let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found" await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType) }
Validera med din app
-
Återskapa och kör appen i simulatorn eller på en fysisk enhet från Xcode med .
-
Gå till Inställningar -fliken.
-
Tryck Push-meddelande. Push-meddelandet visas i din app.
{width="300"}
Nästa steg
Nu bör du ha alla verktyg som behövs för att hantera push-meddelanden i appen. Du kan till exempel skapa en resa i Journey Optimizer som skickar ett välkomstmeddelande när en användare av appen loggar in. Eller ett bekräftelsemeddelande när en användare köper en produkt i appen. Eller anger geofence för en plats (som du kommer att se i Platser lektion).
Nästa: Skapa och skicka meddelanden i appen