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. Mer information om dataflödet för push-meddelanden i Journey Optimizer finns i dokumentationen.
Förhandskrav
-
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 Keys på Apple utvecklarportal.
-
Välj + om du vill skapa en nyckel.
-
Ange en Key Name.
-
Markera kryssrutan Apple Push Notification service (APN:er).
-
Välj Continue.
-
Granska konfigurationen och välj Register.
-
Hämta den privata nyckeln
.p8
. Den används senare i konfigurationen för appytan i den här lektionen. -
Notera Key ID. Den används i appytskonfigurationen.
-
Notera Team ID. Den används i appytskonfigurationen.
Ytterligare dokumentation finns här.
Lägg till en appyta i datainsamling
-
I gränssnittet för datainsamling väljer du App Surfaces i den vänstra panelen.
-
Välj Create App Surface om du vill skapa en konfiguration.
-
Ange Name som konfiguration, till exempel
Luma App Tutorial
. -
Välj Apple iOS från Mobile Application Configuration.
-
Ange ID för mobilappspaket i fältet App ID (iOS Bundle ID). Exempel:
com.adobe.luma.tutorial.swiftui
. -
Aktivera Push Credentials för att lägga till dina autentiseringsuppgifter.
-
Dra och släpp
.p8
Apple Push Notification Authentication Key-filen. -
Ange Key ID, en sträng med 10 tecken som tilldelats när autentiseringsnyckeln
p8
skapades. Den finns på fliken Keys på sidan Certifikat, Identifierare och profiler på sidorna på Apple Developer Portal. Se även Skapa en privat nyckel. -
Ange Team ID. Team-ID är ett värde som finns på fliken Medlemskap eller högst upp på sidan Apple Developer Portal. Se även Skapa en privat nyckel.
-
Välj Save.
Uppdatera datastream-konfiguration
För att säkerställa att data som skickas från din mobilapp till Edge Network vidarebefordras till Journey Optimizer, ska du uppdatera Experience Edge-konfigurationen.
-
I användargränssnittet för datainsamling väljer du Datastreams och markerar ditt datastream, till exempel Luma Mobile App.
-
Välj för Experience Platform och välj Edit på snabbmenyn.
-
På skärmen Datastreams > > Adobe Experience Platform:
-
Om det inte redan är markerat väljer du AJO Push Profile Dataset från Profile Dataset. Den här profildatauppsättningen krävs när du använder API-anropet
MobileCore.setPushIdentifier
(se Registrera enhetstoken för push-meddelanden) som ser till att den unika identifieraren för push-meddelanden (t.ex. push-identifierare) lagras som en del av användarens profil. -
Adobe Journey Optimizer har valts. Mer information finns i Adobe Experience Platform-inställningar.
-
Välj Save om du vill spara dataströmskonfigurationen.
-
Installera tillägget Journey Optimizer-taggar
För att din app ska fungera med Journey Optimizer måste du uppdatera din taggegenskap.
-
Navigera till Tags > Extensions > Catalog,
-
Öppna din egenskap, till exempel Luma Mobile App Tutorial.
-
Välj Catalog.
-
Sök efter tillägget Adobe Journey Optimizer.
-
Installera tillägget.
-
I dialogrutan Install Extension
-
Välj en miljö, till exempel Development.
-
Välj datauppsättningen AJO Push Tracking Experience Event Dataset i listan Event Dataset.
-
Välj Save to Library and Build.
-
Validera inställningar med Assurance
-
Granska avsnittet Installationsanvisningar för att ansluta simulatorn eller enheten till Assurance.
-
Välj Configure i försäkringsgränssnittet.
-
Välj bredvid Push Debug.
-
Välj Save.
-
Välj Push Debug i den vänstra navigeringen.
-
Klicka på fliken Validate Setup.
-
Välj din enhet i listan Client.
-
Bekräfta att inga fel visas.
-
Klicka på fliken Send Test Push.
-
(valfritt) Ändra standardinformationen för Title och Body
-
Välj Send Test Push Notification.
-
Kontrollera Test Results.
-
Du bör se push-meddelandet för testningen visas i din app.
{width="300"}
Signering
Du måste signera Luma-appen 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 målet Luma.
-
Välj fliken Signering och funktioner.
-
Konfigurera Automatic manage signing, Team och Bundle Identifier, eller använd din specifika information om etablering av Apple-utveckling.
note important IMPORTANT Se till att du använder en unik-paketidentifierare och ersätt com.adobe.luma.tutorial.swiftui
-paketidentifieraren, eftersom varje paketidentifierare 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älvstudien används till exempelcom.adobe.luma.tutorial.swiftui
.{modal="regular"}
Lägg till funktioner för push-meddelanden i appen
-
I Xcode väljer du Luma i listan TARGETS, väljer fliken Signing & Capabilities, klickar på knappen + Capability och väljer sedan Push Notifications. 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 fliken General och välj ikonen + längst ned i avsnittet TARGETS.
-
Du uppmanas att välja en mall för det nya målet. Välj Notification Service Extension och sedan Next.
-
I nästa fönster använder du
NotificationExtension
som namn på tillägget och klickar på knappen Finish.
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 avsnittet Installera SDK.
-
Kontrollera att AEP Messaging har lagts till i listan över paket i paketberoenden i Xcode. Se Hanteraren för wift-paket.
-
Navigera till Luma > Luma > AppDelegate i Xcode Project-navigatorn.
-
Se till att
AEPMessaging
ingår i din lista över importer.import AEPMessaging
-
Kontrollera att
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 API:t
MobileCore.setPushIdentifier
i funktionenfunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
.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])
avgör om push-meddelanden använder en APN-sandlåda eller produktionsserver för att skicka push-meddelanden. Kontrollera att messaging.useSandbox
är inställt på true
när du testar din app i simulatorn eller på en enhet 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 ställa in messaging.useSandbox
på false
, annars kommer din produktionsapp inte att kunna 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 Journey Optimizer-gränssnittet väljer du Schemas i den vänstra listen.
-
Välj Browse i flikfältet.
-
Välj ditt schema, till exempel Luma Mobile App Event Schema, för att öppna det.
-
I schemaredigeraren:
-
Markera fältet eventType.
-
I rutan Field properties rullar du nedåt för att se en lista över möjliga värden för händelsetypen. Välj Add row och lägg till
application.test
som VALUE ochTest event for push notification
somDISPLAY NAME
. -
Välj Apply.
-
Välj Save.
-
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. Mer information finns i Om händelser.
-
I Journey Optimizer-gränssnittet väljer du Configurations i den vänstra listen.
-
På skärmen Dashboard väljer du knappen Manage i rutan Events.
-
Välj Create Event på skärmen Events.
-
I rutan Edit event event1:
-
Ange
LumaTestEvent
som Name för händelsen. -
Ange en Description, till exempel
Test event to trigger push notifications in Luma app
. -
Välj det händelseschema för mobilappsupplevelse som du skapade tidigare i Skapa ett XDM-schema från listan Schema, till exempel Luma Mobile App Event Schema v.1.
-
Välj bredvid listan Fields.
I dialogrutan Fields ser du till att följande fält är markerade (ovanpå de standardfält som alltid är markerade (_id, id och timestamp)). Du kan växla mellan Selected, All och Primary i listrutan eller använda fältet .
- Application Identified (id),
- Event Type (eventType),
- Primary (primary).
Välj sedan Ok.
-
Välj bredvid fältet Event id condition.
-
Dra och släpp Event Type (eventType) i dialogrutan Add an event id condition till Drag and drop an element here.
-
Bläddra längst ned i povern 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 till toppen och välj Ok.
-
Välj Ok om du vill spara villkoret.
-
-
Välj ECID (ECID) i listan Namespace. Fältet Profile identifier fylls i automatiskt med The id of the first element of the key ECID for the map identityMap.
-
Välj Save.
-
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 filtrerar inkommande upplevelsehändelser med din specifika händelsetyp (application.test
), så bara händelser med den typen, som initieras från din mobilapp, utlöser 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 Journey Optimizer-gränssnittet väljer du Journeys i den vänstra listen.
-
Välj Create Journey.
-
På panelen Journey Properties:
-
Ange en Name för resan, till exempel
Luma - Test Push Notification Journey
. -
Ange en Description för resan, till exempel
Journey for test push notifications in Luma mobile app
. -
Kontrollera att Allow re-entrance är markerat och ange Re-entrance wait period till 30 Seconds.
-
Välj Ok.
-
-
Tillbaka på arbetsytan på resan, från EVENTS, dra och släpp LumaTestEvent på arbetsytan där den visas Select an entry event or a read audience activity.
- Ange Label, till exempel
Luma Test Event
, på panelen Events: LumaTestEvent.
- Ange Label, till exempel
-
I listrutan ACTIONS drar och släpper du Push på som visas till höger om din LumaTestEvent-aktivitet. I rutan Actions: Push:
-
Ange en Label, till exempel
Luma Test Push Notification
, ge en Description, till exempelTest push notification for Luma mobile app
, välj Transactional i listan Category och välj Luma i listan Push surface. -
Välj Edit content om du vill börja redigera det faktiska push-meddelandet.
I Push Notification-redigeraren:
-
Ange en Title, till exempel
Luma Test Push Notification
, och ange en Body, till exempelTest push notification for Luma mobile app
. -
Du kan också ange en länk till en bild (.png eller .jpg) i Add 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 av push-meddelanden väljer du Ok.
-
-
Resan ska se ut så här nedan. Välj Publish om du vill 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å samma sak 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 > Model > XDM > TestPushPayload i Xcode Project-navigatorn 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-navigatorn 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 anropar sedansendExperienceEvent
när nyttolasten konverteras till ett lexikon. Den här koden, den här gången, tar även hänsyn till asynkrona aspekter av att anropa Adobe Experience Platform SDK genom att använda Swift-samtidighetsmodellen som baseras 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 fliken Settings.
-
Tryck på Push Notification. 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 lektionen Platser).
Nästa: Skapa och skicka meddelanden i appen