Användaridentifiering och -spärring

Användaridentifiering

Det finns flera sätt att identifiera en användare inom Adobe Target. Target använder följande identifierare:

Fältnamn
Beskrivning
tntID
tntId är den primära identifieraren i Target för en användare. Du kan ange det här ID:t, annars genereras det automatiskt av Target om begäran inte innehåller någon.
thirdPartyId
thirdPartyId är företagets identifierare för användaren, som du kan skicka med varje samtal. När en användare loggar in på ett företags webbplats skapar företaget vanligtvis ett ID som är knutet till besökarens konto, förmånskort, medlemsnummer eller andra tillämpliga identifierare för det företaget.
marketingCloudVisitorId
marketingCloudVisitorId används för att sammanfoga och dela data mellan olika Adobe-lösningar. marketingCloudVisitorId krävs för integrering med Adobe Analytics och Adobe Audience Manager.
customerIds
Förutom besökar-ID:t för Experience Cloud kan ytterligare kund-ID:n och en autentiserad status för varje besökare också användas.

Target-ID (tntID)

Target-ID:t, eller tntId, kan betraktas som ett enhets-ID. tntId genereras automatiskt av Adobe Target om det inte anges i begäran. Efterföljande begäranden måste inkludera tntId för att rätt innehåll ska kunna levereras till en enhet som används av samma användare.

I följande exempelanrop visas en situation där tntId inte skickas till Target.

Node.js SDK
code language-javascript line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
  client: "acmeclient",
  organizationId: "1234567890@AdobeOrg"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
  request: {
    execute: {
      mboxes: [{
        name: "some-mbox"
      }]
    }
  }
})
.then(console.log)
.catch(console.error);
Java SDK
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

Context context = new Context().channel(ChannelType.WEB);
MboxRequest mbox = new MboxRequest()
  .name("some-mbox")
  .index(0);
ExecuteRequest executeRequest = new ExecuteRequest()
  .mboxes(Arrays.asList(mbox));

TargetDeliveryRequest request = TargetDeliveryRequest.builder()
  .context(context)
  .execute(executeRequest)
  .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);

Om tntId inte finns genererar Adobe Target en tntId och tillhandahåller den i svaret enligt följande.

{
  "status": 200,
  "requestId": "5b586f83-890c-46ae-93a2-610b1caa43ef",
  "client": "acmeclient",
  "id": {
      "tntId": "10abf6304b2714215b1fd39a870f01afc.35_0"
  },
  "edgeHost": "mboxedge35.tt.omtrdc.net",
  ...
}

I det här exemplet är den genererade tntId 10abf6304b2714215b1fd39a870f01afc.35_0. Observera att tntId måste användas för samma användare i alla sessioner.

Tredje parts-ID (thirdPartyId)

Om din organisation använder ett ID för att identifiera besökaren kan du använda thirdPartyID för att leverera innehåll. En thirdPartyID är ett beständigt ID som används av ditt företag för att identifiera en slutanvändare, oavsett om de interagerar med ditt företag via webb-, mobil- eller IoT-kanaler. thirdPartyId refererar med andra ord till användarprofildata som kan användas i alla kanaler. Du måste dock ange thirdPartyID för varje Adobe Target leverans-API-anrop du gör.

I följande exempelanrop visas hur du använder en thirdPartyId.

Node.js SDK
code language-javascript line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
  client: "acmeclient",
  organizationId: "1234567890@AdobeOrg"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
  request: {
    id: {
      thirdPartyId: "B234A029348"
    },
    execute: {
      mboxes: [{
        name: "some-mbox"
      }]
    }
  }
})
.then(console.log)
.catch(console.error);
Java SDK
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

VisitorId id = new VisitorId()
  .thirdPartyId("B234A029348");
Context context = new Context().channel(ChannelType.WEB);
MboxRequest mbox = new MboxRequest()
  .name("some-mbox")
  .index(0);
ExecuteRequest executeRequest = new ExecuteRequest()
  .mboxes(Arrays.asList(mbox));

TargetDeliveryRequest request = TargetDeliveryRequest.builder()
  .context(context)
  .execute(executeRequest)
  .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);

I det här scenariot genererar Adobe Target en tntId eftersom den inte skickades till det ursprungliga anropet, som mappas till angiven thirdPartyId.

Marketing Cloud Visitor-ID (marketingCloudVisitorId)

marketingCloudVisitorId är ett universellt och beständigt ID som identifierar dina besökare för alla lösningar i Adobe Experience Cloud. När din organisation implementerar ID-tjänsten kan du med det här ID:t identifiera samma besökare och deras data i olika Experience Cloud-lösningar, inklusive Adobe Target, Adobe Analytics och Adobe Audience Manager. Observera att marketingCloudVisitorId krävs vid integrering av Target med Adobe Analytics och Adobe Audience Manager.

Följande exempelanrop visar hur en marketingCloudVisitorId som hämtades från Experience Cloud ID-tjänsten skickas till Target.

Node.js SDK
code language-javascript line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
  client: "acmeclient",
  organizationId: "1234567890@AdobeOrg"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
  request: {
    id: {
      marketingCloudVisitorId: "10527837386392355901041112038610706884"
    },
    execute: {
      mboxes: [{
        name: "some-mbox"
      }]
    }
  }
})
.then(console.log)
.catch(console.error);
Java SDK
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

VisitorId id = new VisitorId()
  .marketingCloudVisitorId("10527837386392355901041112038610706884");
Context context = new Context().channel(ChannelType.WEB);
MboxRequest mbox = new MboxRequest()
  .name("some-mbox")
  .index(0);
ExecuteRequest executeRequest = new ExecuteRequest()
  .mboxes(Arrays.asList(mbox));

TargetDeliveryRequest request = TargetDeliveryRequest.builder()
  .context(context)
  .execute(executeRequest)
  .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);

I det här scenariot genererar Target en tntId eftersom den inte skickades till det ursprungliga anropet, som mappas till angiven marketingCloudVisitorId.

Kund-ID (customerIds)

Kund-ID:n kan läggas till i, eller kopplas till, ett Experience Cloud Visitor-ID. När customerIds skickas måste även marketingCloudVisitorId anges. Dessutom kan en autentiseringsstatus anges tillsammans med varje customerId för varje besökare. Följande autentiseringsstatusar kan användas:

Autentiseringsstatus
Användarstatus
unknown
Okänd eller aldrig autentiserad. Det här läget kan användas för scenarier där en besökare låser sig på platsen genom att klicka på en visningsannons.
authenticated
Användaren autentiseras för närvarande med en aktiv session på din webbplats eller i din app.
logged_out
Användaren autentiserades men loggades aktivt ut. Användaren ville koppla från det autentiserade läget. Användaren vill inte längre behandlas som autentiserad.

Observera att endast när customerId är i ett autentiserat tillstånd Target refererar till användarprofildata som är lagrade och länkade till customerId. Om customerId är i ett okänt eller logged_out-läge ignoreras det och alla användarprofildata som kan associeras med customerId utnyttjas inte för målgruppsanpassning.

Node.js SDK
code language-javascript line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
  client: "acmeclient",
  organizationId: "1234567890@AdobeOrg"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
  request: {
    id: {
      marketingCloudVisitorId : "10527837386392355901041112038610706884",
      customerIds: [{
        id: "134325423",
        integrationCode : "crm_data",
        authenticatedState : "authenticated"
      }]
    },
    execute: {
      mboxes: [{
        name: "some-mbox"
      }]
    }
  }
})
.then(console.log)
.catch(console.error);
Java SDK
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

CustomerId customerId = new CustomerId()
  .id("134325423")
  .integrationCode("crm_data")
  .authenticatedState(AuthenticatedState.AUTHENTICATED);
VisitorId id = new VisitorId()
  .marketingCloudVisitorId("10527837386392355901041112038610706884")
  .customerIds(Arrays.asList(customerId));
Context context = new Context().channel(ChannelType.WEB);
MboxRequest mbox = new MboxRequest()
  .name("some-mbox")
  .index(0);
ExecuteRequest executeRequest = new ExecuteRequest()
  .mboxes(Arrays.asList(mbox));

TargetDeliveryRequest request = TargetDeliveryRequest.builder()
  .context(context)
  .execute(executeRequest)
  .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);

Exemplet ovan visar hur du skickar en customerId med en authenticatedState. När du skickar en customerId krävs både integrationCode, id och authenticatedState samt marketingCloudVisitorId. integrationCode är aliaset för den kundattributfil som du tillhandahöll via CRS.

Sammanfogad profil

Du kan kombinera tntId, thirdPartyID och marketingCloudVisitorId i samma begäran. I det här scenariot behåller Adobe Target mappningen av alla dessa ID:n och fäster den till en besökare. Lär dig hur profiler sammanfogas och synkroniseras i realtid med olika identifierare.

Node.js SDK
code language-javascript line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");

const CONFIG = {
  client: "acmeclient",
  organizationId: "1234567890@AdobeOrg"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
  request: {
    id: {
      tntId: "d359234570e044f14e1faeeba02d6ab23439914e.35_0",
      thirdPartyId: "B234A029348",
      marketingCloudVisitorId : "10527837386392355901041112038610706884"
    },
    execute: {
      mboxes: [{
        name: "some-mbox"
      }]
    }
  }
})
.then(console.log)
.catch(console.error);
Java SDK
code language-java line-numbers
ClientConfig config = ClientConfig.builder()
  .client("acmeclient")
  .organizationId("1234567890@AdobeOrg")
  .build();
TargetClient targetClient = TargetClient.create(config);

VisitorId id = new VisitorId()
  .tntId("d359234570e044f14e1faeeba02d6ab23439914e.35_0")
  .thirdPartyId("B234A029348")
  .marketingCloudVisitorId("10527837386392355901041112038610706884");
Context context = new Context().channel(ChannelType.WEB);
MboxRequest mbox = new MboxRequest()
  .name("some-mbox")
  .index(0);
ExecuteRequest executeRequest = new ExecuteRequest()
  .mboxes(Arrays.asList(mbox));

TargetDeliveryRequest request = TargetDeliveryRequest.builder()
  .context(context)
  .execute(executeRequest)
  .build();

TargetDeliveryResponse offers = targetClient.getOffers(request);

Exemplet ovan visar hur du kan kombinera tntId, thirdPartyID och marketingCloudVisitorId i samma begäran.

Bucketing

Dina användare ser en upplevelse som är beroende av hur du konfigurerar dina Adobe Target-aktiviteter. I Adobe Target är bucketing:

  • Deterministisk: MurmurHash3 används för att se till att användaren är spärrad och ser rätt variant varje gång så länge användar-ID:t är konsekvent.
  • Fäst: Adobe Target lagrar variationen som din användare ser i användarprofilen för att säkerställa att variationen visas på ett konsekvent sätt för användaren i olika sessioner och kanaler. Variationer och krånglighet garanteras när beslut på serversidan används. När beslut på enheten används, kan man inte garantera att de hålls nere.

Arbetsflöde för komplett paketering

Innan du börjar använda den faktiska låsningsalgoritmen är det viktigt att understryka att liknande steg används både för att välja aktiviteter baserat på deras procenttal för trafikallokering och för att välja en upplevelse inom en aktivitet.

Val av aktivitet

  1. Generera ett enhets-ID, vanligtvis ett UUID
  2. Hämta klientkoden
  3. Hämta aktivitets-ID
  4. Hämta saltet, vilket vanligtvis är en sträng som "activity"
  5. Beräkna hash med hjälp av MurmurHash3
  6. Hämta det absoluta värdet för hashen
  7. Dela det absoluta hash-värdet med 10000
  8. Dela upp resten med 10000, vilket ger ett värde mellan 0 och 1
  9. Multiplicera resultatet med 100 %
  10. Jämför tilldelningsprocent för aktivitetstrafik med den erhållna procentandelen. Om trafikallokeringsprocenten är lägre väljs aktiviteten. Annars hoppas aktiviteten över.

Upplev urvalssteg

  1. Generera ett enhets-ID, vanligtvis ett UUID
  2. Hämta klientkoden
  3. Hämta aktivitets-ID
  4. Hämta saltet, vilket vanligtvis är en sträng som "upplevelse"
  5. Beräkna hash med hjälp av MurmurHash3
  6. Hämta det absoluta värdet för hashen
  7. Dela det absoluta hash-värdet med 10000
  8. Dela upp resten med 10000, vilket ger ett värde mellan 0 och 1
  9. Multiplicera resultatet med det totala antalet upplevelser inom aktiviteten
  10. Avrunda resultatet. Detta bör skapa ett upplevelseindex.

Exempel

Anta följande:

  • Klient-C med klientkod acmeclient
  • Aktivitet A som har ID 1111 och tre upplevelser E1, E2, E3
  • Erfarenheter har följande fördelning: E1 - 33 %, E2 - 33 %, E3 - 34 %

Markeringsflödet ser ut så här:

  1. Enhets-ID 702ff4d0-83b1-4e2e-a0a6-22cbe460eb15
  2. Klientkod acmeclient
  3. Aktivitets-ID 1111
  4. Salt experience
  5. Värde för hash acmeclient.1111.702ff4d0-83b1-4e2e-a0a6-22cbe460eb15.experience, hash-värde -919077116
  6. Absolut värde för hash 919077116
  7. Återstående efter division med 10000, 7116
  8. Värdet efter resten divideras med 10000, 0.7116
  9. Resultat efter att värdet har multiplicerats med det totala antalet upplevelser 3 * 0.7116 = 2.1348
  10. Erfarenhetsindexet är 2, vilket innebär den tredje upplevelsen eftersom vi använder 0-baserad indexering.
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3