Evalueer gebeurtenissen in bijna real time met het stromen segmentatie
Door segmentatie te streamen op Adobe Experience Platform kunnen klanten segmentering uitvoeren in de buurt van realtime en tegelijk de nadruk leggen op gegevensrijkdom. Met streamingsegmentatie gebeurt segmentkwalificatie nu als streaminggegevens in Platform terechtkomen, waardoor de noodzaak om segmentatietaken te plannen en uit te voeren, wordt verminderd. Met dit vermogen, kunnen de meeste segmentregels nu worden geëvalueerd aangezien de gegevens in Platform worden overgegaan, betekenend zal het segmentlidmaatschap bijgewerkt zonder geplande segmentatietaken in werking te stellen worden gehouden.
Aan de slag
Deze ontwikkelaarsgids vereist een werkend inzicht in de diverse Adobe Experience Platform diensten betrokken bij het stromen segmentatie. Voordat u met deze zelfstudie begint, raadpleegt u de documentatie voor de volgende services:
- Real-Time Customer Profile: biedt een uniform consumentenprofiel in realtime, gebaseerd op geaggregeerde gegevens van meerdere bronnen.
- Segmentation: biedt de mogelijkheid om een publiek te maken met behulp van segmentdefinities en andere externe bronnen van uw Real-Time Customer Profile -gegevens.
- Experience Data Model (XDM): Het gestandaardiseerde framework waarmee Platform gegevens voor de klantervaring indeelt.
De volgende secties bevatten aanvullende informatie die u moet weten om aanroepen van Platform API's te kunnen uitvoeren.
API-voorbeeldaanroepen lezen
Deze ontwikkelaarsgids verstrekt voorbeeld API vraag om aan te tonen hoe te om uw verzoeken te formatteren. Dit zijn paden, vereiste kopteksten en correct opgemaakte ladingen voor aanvragen. Voorbeeld-JSON die wordt geretourneerd in API-reacties, wordt ook verschaft. Voor informatie over de overeenkomsten die in documentatie voor steekproef API vraag worden gebruikt, zie de sectie op hoe te om voorbeeld API vraagin de Experience Platform het oplossen van problemengids te lezen.
Waarden verzamelen voor vereiste koppen
Om vraag aan Platform APIs te maken, moet u het authentificatieleerprogrammaeerst voltooien. Als u de zelfstudie over verificatie voltooit, krijgt u de waarden voor elk van de vereiste headers in alle API-aanroepen van Experience Platform , zoals hieronder wordt getoond:
- Autorisatie: Drager
{ACCESS_TOKEN}
- x-api-key:
{API_KEY}
- x-gw-ims-org-id:
{ORG_ID}
Alle bronnen in Experience Platform zijn geïsoleerd naar specifieke virtuele sandboxen. Alle aanvragen naar Platform API's vereisen een header die de naam van de sandbox opgeeft waarin de bewerking plaatsvindt:
- x-sandbox-name:
{SANDBOX_NAME}
Alle verzoeken die een nuttige lading (POST, PUT, PATCH) bevatten vereisen een extra kopbal:
- Inhoudstype: application/json
Voor het invullen van specifieke aanvragen kunnen extra kopteksten nodig zijn. In elk voorbeeld in dit document worden de juiste kopteksten weergegeven. Gelieve speciale aandacht te besteden aan de steekproefverzoeken om ervoor te zorgen dat alle vereiste kopballen inbegrepen zijn.
Voor streaming segmentatie ingeschakelde querytypen query-types
Opdat een segmentdefinitie wordt geëvalueerd die het stromen segmentatie gebruikt, moet de vraag aan de volgende richtlijnen in overeenstemming zijn.
Een segmentdefinitie zal niet voor het stromen segmentatie in de volgende scenario's worden toegelaten:
- De segmentdefinitie omvat Adobe Audience Manager (AAM)-segmenten of -kenmerken.
- De segmentdefinitie omvat meerdere entiteiten (vragen van meerdere entiteiten).
- De segmentdefinitie bevat een combinatie van één gebeurtenis en een
inSegment
-gebeurtenis.- Nochtans, als het segment in de
inSegment
gebeurtenis profiel slechts is, zal de segmentdefinitie voor het stromen segmentatie worden toegelaten.
- Nochtans, als het segment in de
- In de segmentdefinitie wordt "Jaar negeren" gebruikt als onderdeel van de tijdbeperkingen.
Houd rekening met de volgende richtlijnen bij het uitvoeren van streaming segmentatie:
- Het raadplegingsvenster is beperkt tot één dag.
- Een strikte tijd-opdracht gevend voorwaarde moet tussen de gebeurtenissen bestaan.
- Query's met ten minste één genegeerde gebeurtenis worden ondersteund. Nochtans, kan de volledige gebeurtenis niet een negatie zijn.
Als een segmentdefinitie wordt gewijzigd zodat deze niet meer voldoet aan de criteria voor het streamen van segmentatie, schakelt de segmentdefinitie automatisch over van "Streaming" naar "Batch".
Bovendien, segmentonkwalificatie, zo gelijkaardig aan segmentkwalificatie, gebeurt in real time. Als een profiel niet langer in aanmerking komt voor een segmentdefinitie, wordt het dus onmiddellijk niet gekwalificeerd. Bijvoorbeeld, als de segmentdefinitie "Alle gebruikers vraagt die rode schoenen in de laatste drie uren"kochten, na drie uren, zullen alle profielen die aanvankelijk voor de segmentdefinitie kwalificeerden ongekwalificeerd zijn.
Hiermee worden alle segmentdefinities opgehaald die zijn ingeschakeld voor streaming segmentatie
U kunt een lijst van al uw segmentdefinities terugwinnen die voor het stromen segmentatie binnen uw organisatie door een verzoek van de GET tot het /segment/definitions
eindpunt te richten worden toegelaten.
API formaat
Als u streaming-ingeschakelde segmentdefinities wilt ophalen, moet u de queryparameter evaluationInfo.continuous.enabled=true
opnemen in het aanvraagpad.
GET /segment/definitions?evaluationInfo.continuous.enabled=true
Verzoek
curl -X GET \
'https://platform.adobe.io/data/core/ups/segment/definitions?evaluationInfo.continuous.enabled=true' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Reactie
Een succesvolle reactie keert een serie van segmentdefinities in uw organisatie terug die voor het stromen segmentatie worden toegelaten.
{
"segments": [
{
"id": "15063cb-2da8-4851-a2e2-bf59ddd2f004",
"schema": {
"name": "_xdm.context.profile"
},
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "",
"sandboxName": "",
"type": "production",
"default": true
},
"name": " People who are NOT on their homepage ",
"expression": {
"type": "PQL",
"format": "pql/text",
"value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = false"
},
"evaluationInfo": {
"batch": {
"enabled": false
},
"continuous": {
"enabled": true
},
"synchronous": {
"enabled": false
}
},
"creationTime": 1572029711000,
"updateEpoch": 1572029712000,
"updateTime": 1572029712000
},
{
"id": "f15063cb-2da8-4851-a2e2-bf59ddd2f004",
"schema": {
"name": "_xdm.context.profile"
},
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "",
"sandboxName": "",
"type": "production",
"default": true
},
"name": "Homepage_continuous",
"description": "People who are on their homepage - continuous",
"expression": {
"type": "PQL",
"format": "pql/text",
"value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
},
"evaluationInfo": {
"batch": {
"enabled": true
},
"continuous": {
"enabled": true
},
"synchronous": {
"enabled": false
}
},
"creationTime": 1572021085000,
"updateEpoch": 1572021086000,
"updateTime": 1572021086000
}
],
"page": {
"totalCount": 2,
"totalPages": 1,
"sortField": "creationTime",
"sort": "desc",
"pageSize": 2,
"limit": 100
},
"link": {}
}
Een segmentdefinitie maken die geschikt is voor streaming
Een segmentdefinitie zal automatisch stromen-toegelaten zijn als het één van de het stromen segmentatietypen aanpast die hierbovenworden vermeld.
API formaat
POST /segment/definitions
Verzoek
curl -X POST \
https://platform.adobe.io/data/core/ups/segment/definitions \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"schema": {
"name": "_xdm.context.profile"
},
"name": "Homepage_continuous",
"description": "People who are on their homepage - continuous",
"expression": {
"type": "PQL",
"format": "pql/text",
"value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
},
"evaluationInfo": {
"batch": {
"enabled": false
},
"continuous": {
"enabled": true
},
"synchronous": {
"enabled": false
}
}
}'
Reactie
Een succesvolle reactie keert de details van de nieuw gecreeerd streaming-toegelaten segmentdefinitie terug.
{
"id": "f15063cb-2da8-4851-a2e2-bf59ddd2f004",
"schema": {
"name": "_xdm.context.profile"
},
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "{SANDBOX_ID}",
"sandboxName": "{SANDBOX_NAME}",
"type": "production",
"default": true
},
"name": "Homepage_continuous",
"description": "People who are on their homepage - continuous",
"expression": {
"type": "PQL",
"format": "pql/text",
"value": "select var1 from xEvent where var1._experience.analytics.endUser.firstWeb.webPageDetails.isHomePage = true"
},
"evaluationInfo": {
"batch": {
"enabled": false
},
"continuous": {
"enabled": true,
},
"synchronous": {
"enabled": false
}
},
"creationTime": 1572021085000,
"updateEpoch": 1572021086000,
"updateTime": 1572021086000
}
Geplande evaluatie inschakelen enable-scheduled-segmentation
Nadat de streamingevaluatie is ingeschakeld, moet een basislijn worden gemaakt (waarna de segmentdefinitie altijd up-to-date is). De geplande evaluatie (die ook als geplande segmentatie wordt bekend) moet eerst worden toegelaten opdat het systeem baselining automatisch uitvoert. Met geplande segmentatie, kan uw organisatie aan een terugkomende planning houden om de uitvoerbanen automatisch in werking te stellen om segmentdefinities te evalueren.
Een schema maken
Door een verzoek van de POST aan het /config/schedules
eindpunt te doen, kunt u een programma tot stand brengen en de specifieke tijd omvatten wanneer het programma zou moeten worden teweeggebracht.
API formaat
POST /config/schedules
Verzoek
Het volgende verzoek leidt tot een nieuw programma dat op de specificaties in de lading wordt gebaseerd.
curl -X POST \
https://platform.adobe.io/data/core/ups/config/schedules \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "{SCHEDULE_NAME}",
"type": "batch_segmentation",
"properties": {
"segments": ["*"]
},
"schedule": "0 0 1 * * ?",
"state": "inactive"
}'
name
type
batch_segmentation
en export
.properties
properties.segments
type
gelijk is aan batch_segmentation
) ["*"]
zorgt ervoor dat alle segmentdefinities worden opgenomen.schedule
0 0 1 * * ?
) betekent de baan elke dag bij 1 :00: 00 UTC wordt teweeggebracht. Voor meer informatie, te herzien gelieve het bijlage op het formaat van de cron uitdrukkingbinnen de documentatie over programma's binnen segmentatie.state
active
en inactive
. De standaardwaarde is inactive
. Een organisatie kan slechts één programma maken. De stappen voor het bijwerken van het programma zijn beschikbaar later in dit leerprogramma.Reactie
Een succesvolle reactie keert de details van het onlangs gecreeerde programma terug.
{
"id": "cd585edf-962d-420d-94ad-3be03e619ac2",
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
"sandboxName": "prod",
"type": "production",
"default": true
},
"name": "{SCHEDULE_NAME}",
"state": "inactive",
"type": "batch_segmentation",
"schedule": "0 0 1 * * ?",
"properties": {
"segments": [
"*"
]
},
"createEpoch": 1568267948,
"updateEpoch": 1568267948
}
Een schema inschakelen
Een schema is standaard niet actief wanneer het wordt gemaakt, tenzij de eigenschap state
is ingesteld op active
in de aanvraagtekst (POST) create. U kunt een schema inschakelen (stel state
in op active
) door een PATCH-aanvraag in te dienen bij het /config/schedules
-eindpunt en de id van het schema op te nemen in het pad.
API formaat
POST /config/schedules/{SCHEDULE_ID}
Verzoek
Het volgende verzoek gebruikt het formatteren van het Reparatie JSONom state
van het programma aan active
bij te werken.
curl -X POST \
https://platform.adobe.io/data/core/ups/config/schedules/cd585edf-962d-420d-94ad-3be03e619ac2 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{
"op": "add",
"path": "/state",
"value": "active"
}
]'
Reactie
Een geslaagde update retourneert een lege reactiehoofdtekst en HTTP Status 204 (Geen inhoud).
Dezelfde bewerking kan worden gebruikt om een schema uit te schakelen door de waarde in het vorige verzoek te vervangen door "inactief".
Volgende stappen
Nu u zowel nieuwe als bestaande segmentdefinities voor het stromen segmentatie hebt toegelaten, en geplande segmentatie toegelaten om een basislijn te ontwikkelen en terugkomende evaluaties uit te voeren, kunt u beginnen streaming-Toegelaten segmentdefinities voor uw organisatie tot stand te brengen.
Leren hoe te om gelijkaardige acties uit te voeren en met segmentdefinities te werken gebruikend het gebruikersinterface van Adobe Experience Platform, gelieve de gebruikersgids van de Bouwer van het Segmentte bezoeken.
Bijlage
In de volgende sectie worden veelgestelde vragen over streamingsegmentatie weergegeven:
Vindt streaming segmentatie ook 'onkwalificatie' plaats in real-time?
Doorgaans gebeurt een onkwalificatie van streamingsegmentatie in real-time. Nochtans, die segmentdefinities stromen die segmenten van segmenten gebruiken niet in real time niet kwalificeren, in plaats daarvan na 24 uren unqualified.
Aan welke gegevens werkt streaming segmentatie?
Streaming segmentatie werkt op alle gegevens die via een streaming bron zijn ingeslikt. Segmenten die worden ingevoerd met behulp van een op batch gebaseerde bron, worden elke avond geëvalueerd, zelfs als deze in aanmerking komt voor streaming segmentatie. Gebeurtenissen die naar het systeem worden gestreamd met een tijdstempel die ouder is dan 24 uur, worden verwerkt in de volgende batchtaak.
Hoe worden segmentdefinities gedefinieerd als batch- of streaming-segmentatie?
Een segmentdefinitie wordt gedefinieerd als batch- of streaming-segmentatie op basis van een combinatie van het type query en de duur van de gebeurtenisgeschiedenis. Een lijst waarvan segmentdefinities als het stromen segment zullen worden geëvalueerd kan in de het stromen sectie van de segmenteringsvraagtypesworden gevonden.
Gelieve te merken op dat als een segment zowel een inSegment
uitdrukking als een directe enige-gebeurtenisketting bevat, het niet voor het stromen segmentatie kan kwalificeren. Als u deze segmentdefinitie voor het stromen segmentatie wilt kwalificeren, zou u de directe enige-gebeurtenisketting zijn eigen segmentdefinitie moeten maken.
Waarom neemt het aantal "totaal gekwalificeerde"segmentdefinities toe terwijl het aantal onder "Laatste X dagen"bij nul blijft binnen de sectie van de segmentdefinitiedetails?
Het aantal totaal gekwalificeerde segmentdefinities wordt getrokken uit de dagelijkse segmentatietaak, die publiek omvat dat voor zowel partij als streaming segmentdefinities kwalificeert. Deze waarde wordt weergegeven voor definities van zowel batch- als streaming segmenten.
Het aantal onder de "Laatste dagen van X"slechts omvat publiek dat in het stromen segmentatie wordt gekwalificeerd, en slechts verhogingen als u gegevens in het systeem hebt gestroomd en het telt naar die het stromen definitie. Deze waarde is slechts getoond voor het stromen segmentdefinities. Dientengevolge, kan deze waarde tonen als 0 voor de definities van het partijsegment.
Dientengevolge, als u ziet dat het aantal onder "Laatste dagen van X"nul is, en de lijngrafiek ook nul rapporteert, hebt u gestroomd geen profielen in het systeem dat voor die segmentdefinitie zou kwalificeren.
Hoe lang duurt het voordat een segmentdefinitie beschikbaar is?
Het duurt tot één uur voordat een segmentdefinitie beschikbaar is.
Zijn er beperkingen aan de gegevens waarin wordt gestreamd?
Opdat de gestroomde gegevens in het stromen segmentatie worden gebruikt, moet het uit elkaar plaatsen tussen de gebeurtenissen zijn die binnen worden gestroomd. Als er te veel gebeurtenissen binnen dezelfde seconde worden gestreamd, behandelt Platform deze gebeurtenissen als door beide gegenereerde gegevens en worden ze genegeerd. Als beste praktijken, zou u minstens vijf seconden tussen gebeurtenisgegevens moeten hebben om ervoor te zorgen dat het gegeven behoorlijk wordt gebruikt.