Przejdź do treści

Raporty – atrybucja rekomendacji

Ta metoda zwraca produkty, które klienci kupili dzięki rekomendacjom ECDP w wybranym zakresie dat. Każdy rekord to jeden zakupiony produkt przypisany do rekomendacji wyświetlonej w wiadomości e-mail, pop-upie lub banerze.

Każdy rekord zawiera informacje o zamówieniu, kliencie, kanale oraz wiadomości lub kampanii, która dostarczyła rekomendację, a także wartość produktu. Opcjonalnie możesz dodać opisowe pola przypisanego produktu oraz pełną listę produktów z tego samego zamówienia.

Użyj tej metody, aby weryfikować skuteczność rekomendacji.

Endpoint

GET /reports/attribution/recommendations

Host: https://api.ecdp.app

Parametry zapytania

ParametrLokalizacjaTypWymaganyOpisDozwolone wartości / Uwagi
x-api-keyheaderstringtakKlucz API do uwierzytelnianiaDostępny w Ustawienia > API
startDatequerystringtakPoczątek okna raportowaniaFormat: YYYY-MM-DD. Interpretowana w strefie czasowej jednostki biznesowej. Musi być wcześniejsza lub równa endDate
endDatequerystringtakKoniec okna raportowaniaFormat: YYYY-MM-DD. Interpretowana w strefie czasowej jednostki biznesowej. Uwzględniany jest cały dzień końcowy
websitequerystringnieFiltruje wyniki po ID lub nazwie stronyID strony (liczba całkowita)
channelqueryenumwarunkowyOgranicza wyniki do jednego kanałuEmail, PopUp, Banner, Sms, WebPush. Wielkość liter nie ma znaczenia. Wymagany, gdy podano messageType, messageId lub campaignId. Wartości Sms i WebPush są akceptowane, ale rekomendacje nie są dostępne dla tych kanałów, więc odpowiedź jest pusta
messageTypequeryenumnieOgranicza wyniki do jednego typu wiadomościNewsletter, Scenario, Confirmation. Wymaga channel=Email, Sms lub WebPush. Confirmation dostępny wyłącznie dla kanału Email
messageIdqueryintegernieOgranicza wyniki do konkretnej wiadomościWymaga channel=Email, Sms lub WebPush
campaignIdqueryintegernieOgranicza wyniki do konkretnej kampanii pop-up lub baneruWymaga channel=PopUp lub Banner
includeProductDetailsquerybooleannieUwzględnia opisowe pola przypisanego produktutrue lub false. Domyślnie: false
includeOrderDetailsquerybooleannieUwzględnia wszystkie produkty z zamówienia dla każdego rekordutrue lub false. Domyślnie: false

Odpowiedź

Odpowiedź zawiera tablicę data. Każdy element reprezentuje jeden zakupiony produkt przypisany do rekomendacji.

Dane raportu atrybucji rekomendacji

PoleTypOpis
dateTimestringData i godzina rekordu w strefie czasowej jednostki biznesowej. Format: YYYY-MM-DDThh:mm:ss, bez przesunięcia UTC
websiteIdintegerStrona, z której pochodzi zamówienie
channelstringKanał, który dostarczył rekomendację: Email, PopUp lub Banner
messageTypestringTyp wiadomości: Newsletter, Scenario lub Confirmation. Pomijane dla PopUp i Banner
messageIdintegerIdentyfikator przypisanej wiadomości. Pomijane dla PopUp i Banner
campaignIdintegerIdentyfikator przypisanej kampanii pop-up lub baneru. Pomijane dla Email
orderIdstringIdentyfikator zamówienia zawierającego przypisany produkt
customerobjectDane klienta. Zobacz tabelę Dane klienta. Pomijane, gdy zamówienie nie jest powiązane z klientem
productIdstringIdentyfikator przypisanego produktu zgodny ze źródłem e-commerce
productValueConvertednumberWartość przypisanego produktu przeliczona na walutę raportowania jednostki biznesowej
productDetailsobjectObecne, gdy includeProductDetails=true. Ma strukturę opisaną w tabeli Szczegóły produktu
orderDetailsarrayObecne, gdy includeOrderDetails=true. Każdy element ma strukturę opisaną w tabeli Szczegóły produktu

Dane klienta

Obiekt customer zawiera następujące pola.

PoleTypOpis
idintegerWewnętrzny identyfikator klienta w ECDP
emailstringAdres e-mail klienta
phonestringNumer telefonu klienta
crmIdstringIdentyfikator klienta w systemie CRM

Szczegóły produktu

Gdy includeProductDetails=true, każdy rekord zawiera obiekt productDetails opisujący przypisany produkt. Gdy includeOrderDetails=true, każdy rekord zawiera tablicę orderDetails ze wszystkimi produktami z zamówienia. Oba pola mają tę samą strukturę, taką samą jak pozycje zamówienia w raporcie atrybucji zamówień. Jeśli ustawisz oba parametry na true, przypisany produkt pojawi się zarówno w productDetails, jak i w orderDetails.

PoleTypOpis
idstringIdentyfikator produktu zgodny ze źródłem e-commerce
namestringNazwa produktu
pricenumberCena jednostkowa w oryginalnej walucie transakcji
quantityintegerZakupiona ilość
returnedintegerZwrócona ilość. Pomijane, jeśli nie ustawiono
categorystringKategoria produktu. Pomijane, jeśli nie ustawiono
productAttributesarrayTablica par { name, value } z niestandardowymi cechami produktu. Pomijane, jeśli brak
recommendationAttributionobjectObecne, gdy produkt został dodany za pośrednictwem rekomendacji ECDP. Zobacz strukturę poniżej

Obiekt atrybucji rekomendacji

PoleTypOpis
scopestringZakres atrybucji: Channel (Email) lub Onsite (PopUp, Banner)
typestringTyp rekomendatora: Personalized, Complementary, Bestsellers, Popular, SimilarProducts, CrossSell, VisuallySimilar, SimilarProperties, Emailing lub RecentlyViewed
idintegerIdentyfikator wiadomości (Email) lub kampanii (PopUp, Banner), która dostarczyła rekomendację
channelstringPowierzchnia rekomendacji: Email, PopUp lub Banner

Przykładowe zapytania i odpowiedzi

Zakupy przypisane do rekomendacji w wybranym zakresie dat

GET /reports/attribution/recommendations?startDate=2025-03-01&endDate=2025-03-07

Odpowiedź (200 OK):

{
  "data": [
    {
      "dateTime": "2025-03-03T11:24:15",
      "websiteId": 1,
      "channel": "Banner",
      "campaignId": 310,
      "orderId": "100042",
      "customer": {
        "id": 981245,
        "email": "customer@example.com",
        "phone": "48123456789",
        "crmId": "778"
      },
      "productId": "SKU-225",
      "productValueConverted": 29.95
    }
  ]
}

Zakupy przypisane do newslettera e-mail, ze szczegółami produktu

GET /reports/attribution/recommendations?startDate=2025-03-01&endDate=2025-03-07&website=21&channel=Email&messageType=Newsletter&messageId=12045&includeProductDetails=true

Odpowiedź (200 OK):

{
  "data": [
    {
      "dateTime": "2025-03-05T19:02:41",
      "websiteId": 1,
      "channel": "Email",
      "messageType": "Newsletter",
      "messageId": 12045,
      "orderId": "100057",
      "customer": {
        "id": 771100,
        "email": "customer@example.com",
        "phone": "",
        "crmId": "101"
      },
      "productId": "SKU-101",
      "productValueConverted": 39.90,
      "productDetails": {
        "id": "SKU-101",
        "name": "Canvas Tote",
        "price": 39.90,
        "quantity": 1,
        "returned": 0,
        "category": "Bags"
      }
    }
  ]
}

Zakupy przypisane do kampanii banerowej, ze szczegółami produktu i zamówienia

GET /reports/attribution/recommendations?startDate=2025-03-15&endDate=2025-03-15&website=21&channel=Banner&campaignId=310&includeProductDetails=true&includeOrderDetails=true

Odpowiedź (200 OK):

{
  "data": [
    {
      "dateTime": "2025-03-15T09:41:06",
      "websiteId": 1,
      "channel": "Banner",
      "campaignId": 310,
      "orderId": "100063",
      "customer": {
        "id": 332100,
        "email": "customer@example.com",
        "phone": "",
        "crmId": "551"
      },
      "productId": "SKU-555",
      "productValueConverted": 51.40,
      "productDetails": {
        "id": "SKU-555",
        "name": "Insulated Mug",
        "price": 51.40,
        "quantity": 1,
        "returned": 0,
        "category": "Kitchen",
        "recommendationAttribution": {
          "scope": "Onsite",
          "type": "Bestsellers",
          "id": 310,
          "channel": "Banner"
        }
      },
      "orderDetails": [
        {
          "id": "SKU-101",
          "name": "Canvas Tote",
          "price": 39.90,
          "quantity": 1,
          "returned": 0,
          "category": "Bags",
          "productAttributes": [
            { "name": "color", "value": "natural" }
          ]
        },
        {
          "id": "SKU-555",
          "name": "Insulated Mug",
          "price": 51.40,
          "quantity": 1,
          "returned": 0,
          "category": "Kitchen",
          "recommendationAttribution": {
            "scope": "Onsite",
            "type": "Bestsellers",
            "id": 310,
            "channel": "Banner"
          }
        }
      ]
    }
  ]
}

Kody odpowiedzi

KodStatusOpis
200OKŻądanie zostało przetworzone pomyślnie. Odpowiedź zawiera listę przypisanych produktów. Gdy żadne dane nie spełniają kryteriów zapytania, tablica data jest pusta
400Bad RequestBłędne żądanie. Nieprawidłowe lub brakujące parametry. Odpowiedź zawiera pola substatus i errors, które wskazują problem
401UnauthorizedBrak autoryzacji. Klucz API jest brakujący, nieprawidłowy lub wygasł. Sprawdź swój klucz w Ustawienia > API

Reguły walidacji i zachowania

  • startDate i endDate są wymagane i muszą mieć format YYYY-MM-DD. startDate musi być wcześniejsza lub równa endDate. W przeciwnym razie zapytanie zwraca błąd 400 Bad Request.
  • website musi wskazywać istniejące ID. W przeciwnym razie zapytanie zwraca błąd 400 Bad Request.
  • channel jest wymagany, gdy podano messageType, messageId lub campaignId.
  • messageType i messageId można stosować wyłącznie z channel=Email, Sms lub WebPush. campaignId można stosować wyłącznie z channel=PopUp lub Banner. Niepasująca kombinacja zwraca błąd 400 Bad Request.
  • Wartość Confirmation parametru messageType jest prawidłowa wyłącznie gdy channel=Email.
  • messageId i campaignId muszą wskazywać istniejącą wiadomość lub kampanię. W przeciwnym razie zapytanie zwraca błąd 400 Bad Request.
  • Rekomendacje są dostępne dla kanałów Email, PopUp i Banner. Zapytanie z channel=Sms lub channel=WebPush jest prawidłowe, ale zawsze zwraca pustą tablicę data.
  • Gdy zamówienie nie jest powiązane z klientem, obiekt customer jest pomijany w rekordzie.

Dokumentacja referencyjna

Swagger — Raporty atrybucji

https://api.ecdp.app/swagger/index.html