Een bronverbinding en gegevensstroom maken voor Mixpanel met de Flow Service API
Het volgende leerprogramma begeleidt u door de stappen om een bronverbinding en een dataflow tot stand te brengen Mixpanel gegevens naar Adobe Experience Platform met behulp van de Flow Service-API.
Aan de slag
Deze handleiding vereist een goed begrip van de volgende onderdelen van het Experience Platform:
- Bronnen: Met Experience Platform kunnen gegevens uit verschillende bronnen worden ingepakt en kunt u inkomende gegevens structureren, labelen en verbeteren met behulp van de platformservices.
- Sandboxen: Experience Platform biedt virtuele sandboxen die één platforminstantie in afzonderlijke virtuele omgevingen verdelen om toepassingen voor digitale ervaringen te ontwikkelen en te ontwikkelen.
De volgende secties bevatten aanvullende informatie die u nodig hebt om verbinding te kunnen maken met Mixpanel met de Flow Service API.
Vereiste referenties verzamelen
Om verbinding te maken Mixpanel aan Platform, moet u waarden voor de volgende verbindingseigenschappen verstrekken:
username
Test8.6d4ee7.mp-service-account
password
dLlidiKHpCZtJhQDyN2RECKudMeTItX1
projectId
2384945
timezone
Pacific Standard Time
Voor meer informatie over het verifiëren van uw Mixpanel bron, zie Mixpanel bronoverzicht.
Een basisverbinding maken base-connection
Een basisverbinding behoudt informatie tussen uw bron en Platform, met inbegrip van de de authentificatiegeloofsbrieven van uw bron, de huidige staat van de verbinding, en uw unieke identiteitskaart van de basisverbinding. Met de ID van de basisverbinding kunt u bestanden verkennen en door bestanden navigeren vanuit uw bron en kunt u de specifieke items identificeren die u wilt opnemen, inclusief informatie over hun gegevenstypen en indelingen.
Om een identiteitskaart van de basisverbinding te creëren, doe een verzoek van de POST aan /connections
als u uw Mixpanel verificatiegegevens als onderdeel van de aanvraaginstantie.
API-indeling
POST /connections
Verzoek
Met de volgende aanvraag wordt een basisverbinding gemaakt voor Mixpanel:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Mixpanel base connection",
"description": "Mixpanel base connection to authenticate to Platform",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"auth": {
"specName": "Basic Authentication",
"params": {
"username": "{USERNAME}",
"password": "{PASSWORD}"
}
}
}'
name
description
connectionSpec.id
auth.specName
auth.params.
auth.params.username
auth.params.password
Antwoord
Een geslaagde reactie retourneert de nieuwe basisverbinding, inclusief de unieke verbindingsidentificatie (id
). Deze id is vereist om de bestandsstructuur en inhoud van uw bron in de volgende stap te verkennen.
{
"id": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"etag": "\"d64c8298-add4-4667-9a49-28195b2e2a84\""
}
Ontdek uw bron explore
Met de id van de basisverbinding die u in de vorige stap hebt gegenereerd, kunt u bestanden en mappen verkennen door GET-aanvragen uit te voeren.
Gebruik de volgende vraag om de weg van het dossier te vinden u in Experience Platform wilt brengen:
API-indeling
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
Wanneer het uitvoeren van GET verzoeken om de het dossierstructuur en inhoud van uw bron te onderzoeken, moet u de vraagparameters omvatten die in de lijst hieronder vermeld zijn:
{BASE_CONNECTION_ID}
objectType=rest
rest
.{OBJECT}
json
.fileType=json
json
is het enige ondersteunde bestandstype.{PREVIEW}
{SOURCE_PARAMS}
{SOURCE_PARAMS}
, moet u het gehele {"projectId":"2671127","timezone":"Pacific Standard Time"}
string in base64. Opmerking: In het onderstaande voorbeeld: "{"projectId":"2671127","timezone":"Pacific Standard Time"}"
gecodeerd in base64 is gelijk aan eyJwcm9qZWN0SWQiOiIyNjcxMTI3IiwidGltZXpvbmUiOiJQYWNpZmljIFN0YW5kYXJkIFRpbWUifQ==
.Verzoek
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/70383d02-2777-4be7-a309-9dd6eea1b46d/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJsaXN0SWQiOiIxMGMwOTdjYTcxIn0=' \
-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}'
Antwoord
Een succesvol antwoord retourneert de structuur van het bestand waarnaar wordt gevraagd.
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"event": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"$mp_api_endpoint": {
"type": "string"
},
"$insert_id": {
"type": "string"
},
"item_id": {
"type": "string"
},
"distinct_id": {
"type": "string"
},
"$mp_api_timestamp_ms": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"item_price": {
"type": "string"
},
"$import": {
"type": "boolean"
},
"item_name": {
"type": "string"
},
"time": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"mp_processing_time_ms": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
}
}
}
}
},
"data": [
{
"event": "Items purchased",
"properties": {
"time": 1652825148,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652850348643,
"item_id": "29066",
"item_name": "charger",
"item_price": "800.00",
"mp_processing_time_ms": 1652850348702
}
},
{
"event": "Items sold",
"properties": {
"time": 1652423938,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652449138115,
"item_id": "29036",
"item_name": "chair",
"item_price": "5000.00",
"mp_processing_time_ms": 1652449138173
}
},
{
"event": "Items sold",
"properties": {
"time": 1652854256,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652879456538,
"item_id": "29066",
"item_name": "mobile",
"item_price": "7000.00",
"mp_processing_time_ms": 1652879456604
}
},
{
"event": "Sign off",
"properties": {
"time": 1648140611,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648555709515,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648555710375
}
},
{
"event": "Items sold",
"properties": {
"time": 1648140612,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648556481708,
"item_id": "29073",
"item_name": "Pen",
"item_price": "1000.00",
"mp_processing_time_ms": 1648556481880
}
},
{
"event": "Sign in",
"properties": {
"time": 1648140614,
"distinct_id": "test1@test.com",
"$import": true,
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648556032401,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648556032462
}
},
{
"event": "Item Purchased",
"properties": {
"time": 1648165814,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b74",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648480684785,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648480685058
}
},
{
"event": "Item Purchased",
"properties": {
"time": 1648165814,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648551687866,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648551687922
}
},
{
"event": "Sign off",
"properties": {
"time": 1648530419,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648555619274,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648555619326
}
},
{
"event": "Items sold",
"properties": {
"time": 1648566534,
"distinct_id": "test1@test.com",
"$import": true,
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648635830114,
"item_id": "29073",
"item_name": "Pen",
"item_price": "1000.00",
"mp_processing_time_ms": 1648635831010
}
}
]
}
Een bronverbinding maken source-connection
U kunt een bronverbinding tot stand brengen door een verzoek van de POST aan Flow Service API. Een bronverbinding bestaat uit een verbinding-id, een pad naar het brongegevensbestand en een verbindingsspecificatie-id.
API-indeling
POST /sourceConnections
Verzoek
Met de volgende aanvraag wordt een bronverbinding gemaakt voor Mixpanel:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-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}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Mixpanel source connection",
"description": "Mixpanel source connection",
"baseConnectionId": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"projectId": "{PROJECT_ID}",
"timezone": "{TIMEZONE}"
}
}'
name
description
baseConnectionId
connectionSpec.id
data.format
json
.params.projectId
params.timezone
Antwoord
Een geslaagde reactie retourneert de unieke id (id
) van de nieuwe bronverbinding. Deze id is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Een doel-XDM-schema maken target-schema
Om de brongegevens in Platform te gebruiken, moet een doelschema worden gecreeerd om de brongegevens volgens uw behoeften te structureren. Het doelschema wordt dan gebruikt om een dataset van het Platform tot stand te brengen waarin de brongegevens bevat zijn.
Een doelXDM schema kan tot stand worden gebracht door een POST verzoek aan te voeren Schema-register-API.
Voor gedetailleerde stappen op hoe te om een doelXDM schema tot stand te brengen, zie de zelfstudie op een schema maken met de API.
Een doelgegevensset maken target-dataset
Een doeldataset kan tot stand worden gebracht door een verzoek van de POST aan Catalogusservice-API, op voorwaarde dat de id van het doelschema zich binnen de payload bevindt.
Voor gedetailleerde stappen op hoe te om een doeldataset tot stand te brengen, zie het leerprogramma op een gegevensset maken met de API.
Een doelverbinding maken target-connection
Een doelverbinding vertegenwoordigt de verbinding met de bestemming waar de ingesloten gegevens moeten worden opgeslagen. Om een doelverbinding tot stand te brengen, moet u vaste identiteitskaart van de verbindingsspecificatie verstrekken die aan het gegevens meer beantwoordt. Deze id is: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
U hebt nu de unieke herkenningstekens een doelschema een doeldataset en identiteitskaart van de verbindingsspecificatie aan het gegevensmeer. Met deze id's kunt u een doelverbinding maken met de Flow Service API om de dataset te specificeren die de binnenkomende brongegevens zal bevatten.
API-indeling
POST /targetConnections
Verzoek
Met de volgende aanvraag wordt een doelverbinding gemaakt voor Mixpanel:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-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}' \
-H 'Content-Type: application/json' \
-d '{
"name": "{Mixpanel} Target Connection",
"description": "{Mixpanel} Target Connection",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"dataSetId": "5ef4551c52e054191a61a99f"
}
}'
name
description
connectionSpec.id
fd2c8ff3-1de0-4f6b-8fa8-4264784870eb
.data.format
params.dataSetId
Antwoord
Een geslaagde reactie retourneert de unieke id van de nieuwe doelverbinding (id
). Deze id is vereist in latere stappen.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Een toewijzing maken mapping
Opdat de brongegevens in een doeldataset moeten worden opgenomen, moet het eerst aan het doelschema worden in kaart gebracht dat de doeldataset zich aan houdt. Dit wordt bereikt door een verzoek van de POST uit te voeren aan Data Prep API met gegevenstoewijzingen die zijn gedefinieerd in de payload van het verzoek.
API-indeling
POST /conversion/mappingSets
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-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}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/995dabbea86d58e346ff91bd8aa741a9f36f29b1019138d4",
"xdmVersion": "1.0",
"id": null,
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "data.distinct_id",
"destination": "_extconndev.distinct_id",
"name": "distinct_id",
"description": "Mixpanel"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.event_name",
"destination": "_extconndev.event_name"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.import",
"destination": "_extconndev.import"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.insert_id",
"destination": "_extconndev.insert_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_id",
"destination": "_extconndev.item_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_name",
"destination": "_extconndev.item_name"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_price",
"destination": "_extconndev.item_price"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_api_endpoint",
"destination": "_extconndev.mp_api_endpoint"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_api_timestamp_ms",
"destination": "_extconndev.mp_api_timestamp_ms"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_processing_time_ms",
"destination": "_extconndev.mp_processing_time_ms"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.time",
"destination": "_extconndev.time"
}
]
}'
xdmSchema
mappings.destinationXdmPath
mappings.sourceAttribute
mappings.identity
Antwoord
Een geslaagde reactie retourneert details van de nieuwe toewijzing inclusief de unieke id (id
). Deze waarde is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Een flow maken flow
De laatste stap op weg naar het verzamelen van gegevens van Mixpanel aan Platform moet een gegevensstroom creëren. Momenteel zijn de volgende vereiste waarden voorbereid:
Een dataflow is verantwoordelijk voor het plannen en verzamelen van gegevens uit een bron. U kunt een gegevensstroom tot stand brengen door een verzoek van de POST uit te voeren terwijl het verstrekken van de eerder vermelde waarden binnen de lading.
Als u een opname wilt plannen, moet u eerst de begintijdwaarde instellen op Tijd in seconden. Vervolgens moet u de frequentiewaarde instellen op een van de vijf opties: once
, minute
, hour
, day
, of week
. De intervalwaarde geeft echter de periode tussen twee opeenvolgende inname aan. Voor een eenmalige inname hoeft geen interval te worden ingesteld. Voor alle andere frequenties moet de intervalwaarde op gelijk aan of groter dan 15
.
API-indeling
POST /flows
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "{Mixpanel} dataflow",
"description": "{Mixpanel} dataflow",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "minute",
"interval": 15
}
}'
name
description
flowSpec.id
6499120c-0b15-42dc-936e-847ea3c24d72
.flowSpec.version
1.0
.sourceConnectionIds
targetConnectionIds
transformations
transformations.name
transformations.params.mappingId
transformations.params.mappingVersion
0
.scheduleParams.startTime
scheduleParams.frequency
once
, minute
, hour
, day
, of week
.scheduleParams.interval
once
en moet groter zijn dan of gelijk zijn aan 15
voor andere frequentiewaarden.Antwoord
Een geslaagde reactie retourneert de id (id
) van de nieuwe gegevensstroom. Met deze id kunt u uw gegevensstroom controleren, bijwerken of verwijderen.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Bijlage
In de volgende sectie vindt u informatie over de stappen die u kunt uitvoeren om uw gegevensstroom te controleren, bij te werken en te verwijderen.
Uw gegevensstroom controleren
Zodra uw gegevensstroom is gecreeerd, kunt u de gegevens controleren die door het worden opgenomen om informatie over stroomlooppas, voltooiingsstatus, en fouten te zien. Lees de handleiding voor volledige API-voorbeelden op de gegevensstroom van uw bronnen controleren met behulp van de API.
Uw gegevensstroom bijwerken
Werk de details van uw dataflow, zoals zijn naam en beschrijving, evenals zijn looppas programma en bijbehorende kaartreeksen bij door een verzoek van de PATCH aan het /flows
eindpunt van Flow Service API, terwijl het verstrekken van identiteitskaart van uw gegevensstroom. Wanneer u een PATCH-verzoek indient, moet u de unieke gegevens van uw gegevensstroom opgeven etag
in de If-Match
header. Lees de handleiding voor volledige API-voorbeelden op bronnen bijwerken met behulp van de API.
Uw account bijwerken
Werk de naam, beschrijving en referenties van uw bronaccount bij door een PATCH-verzoek uit te voeren naar de Flow Service API terwijl het verstrekken van uw identiteitskaart van de basisverbinding als vraagparameter. Wanneer u een PATCH-aanvraag indient, moet u de unieke bronaccount opgeven etag
in de If-Match
header. Lees de handleiding voor volledige API-voorbeelden op het bijwerken van uw bronrekening gebruikend API.
Uw gegevensstroom verwijderen
Verwijder de gegevensstroom door een DELETE-aanvraag uit te voeren naar de Flow Service API terwijl het verstrekken van identiteitskaart van dataflow wilt u als deel van de vraagparameter schrappen. Lees de handleiding voor volledige API-voorbeelden op verwijderen, gegevensstromen met behulp van de API.
Uw account verwijderen
Uw account verwijderen door een DELETE-verzoek uit te voeren aan de Flow Service API terwijl het verstrekken van de identiteitskaart van de basisverbinding van de rekening u wilt schrappen. Lees de handleiding voor volledige API-voorbeelden op verwijderen van uw bronaccount met behulp van de API.