Manual Server-Side Integration

If you do not use the Google Tag Manager integration, you can integrate sales tracking directly on your server. The manual integration of server-side tracking should always be preferred over client-side integration for reliability reasons.

The manual integration requires your shop to identify traffic from us and report direct & post-sales. See Identify Traffic From Us and Report Direct and Post-Sales at the bottom of this page.

How does it work?

When a user clicks on one of your products on moebel.de, meubles.fr, meubelo.nl, moebel24.at, moebel24.ch, mobi24.es, mobi24.it, living24.pl or living24.uk, our server generates a unique ID (moeclid) which is appended as a query parameter to your landing page URL. Your store shall remember this user by creating a first-party cookie with a lifetime of 90 days that stores the ID that is submitted as the value of the request parameter (moeclid). The ID is required for submitting sales information to us later in the process.

Set the cookie on your server with a lifetime of 90 days, so that you can recognize a returning visitor within that timeframe.

If the user makes a purchase on your site and has the cookie you created when they came to your shop, a conversion event shall be sent to our server including the ID of the moeclid query parameter and further purchase-related data.

Please note that we are requesting unattributed sales data from you. As we utilize this data to promote your products through our algorithm, attributing sales to specific customers or sources may negatively impact the scoring of your products, leading to poorer performance.

Prerequisites

Before you proceed with this integration, make sure the following conditions are met:

  • You have received your Partner ID or dedicated Sales Tracking Key.

  • You have told your account manager whether you report gross values (including tax) or net values, so that we can handle the tax correctly.

Submitting Sales Information

Each of our portals provides a single HTTP endpoint to which sales information should be sent.

The request format is the same for all portals. Use the endpoint and the partner key for your market.

Endpoint URL per Portal

Portal Endpoint URL

moebel.de

https://redirect.moebel.de/api/1.0/moebel/de/sales?key={{partner_id|sales_tracking_key}}

meubles.fr

https://redirect.meubles.fr/api/1.0/moebel/fr/sales?key={{partner_id|sales_tracking_key}}

meubelo.nl

https://redirect.meubelo.nl/api/1.0/moebel/nl/sales?key={{partner_id|sales_tracking_key}}

moebel24.at

https://redirect.moebel24.at/api/1.0/moebel/at/sales?key={{partner_id|sales_tracking_key}}

moebel24.ch

https://redirect.moebel24.ch/api/1.0/moebel/ch/sales?key={{partner_id|sales_tracking_key}}

mobi24.es

https://redirect.mobi24.es/api/1.0/moebel/es/sales?key={{partner_id|sales_tracking_key}}

mobi24.it

https://redirect.mobi24.it/api/1.0/moebel/it/sales?key={{partner_id|sales_tracking_key}}

living24.pl

https://redirect.living24.pl/api/1.0/moebel/pl/sales?key={{partner_id|sales_tracking_key}}

living24.uk

https://redirect.living24.uk/api/1.0/moebel/gb/sales?key={{partner_id|sales_tracking_key}}

Endpoint Communication

Communicating with our tracking service using the endpoint URL requires a few parameters to be added to the endpoint call.

HTTP Method

POST, with a JSON body and the header Content-Type: application/json.

Query Parameter

URL-encode the supplied key.

Parameter Description Mandatory Data type Example Comment

key

your sales tracking key or partner id

yes

string

0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75

provided by your account manager

Body Parameter

Parameter Description Mandatory Field Data type Example Comment

moeclid

unique clickout id from moebel.de

yes

string

0f81f6c0-bee9-420f-8f1f-e9f7f79f5424

value

total basket value, without shipping costs, gross or net as agreed with your account manager

yes

string

1499.97

2 digits, "." as decimal delimiter, no thousand delimiters

shipping

shipping costs

yes

string

29.99

2 digits, "." as decimal delimiter, no thousand delimiters

type

sales tracking type (s2s, c2s)

yes

string

s2s

for this integration it is always s2s (server-to-server)

items

array of unique items in order

yes

array

[{ "item_id": "sp47886359", "quantity": 1, "price": 899.99, "item_category": "Möbel" }, { "item_id": "sp31118801", "quantity": 2, "price": 299.99, "item_category": "Couches" }]

- item_id

your sku ID

yes

string

sp47886359

- quantity

product quantity

yes

integer

1

integer, no delimiter

- price

product price, gross or net like value

yes

float

299.99

2 digits, "." as decimal delimiter, no thousand delimiters

- item_category

your category name of the item

yes

string

Couches

currency

currency of the amounts

yes

string

EUR

ISO 4217 code of the currency your amounts are in, e.g. EUR, CHF, PLN or GBP

order_id

your identifier for the order

no

string

1172210481407

recommended, unique per order, see Order ID

Order ID

Please send order_id with every sale and use a value that is unique per order. It lets us recognise a sale that reaches us more than once, and it keeps two orders of the same value after the same click apart. Never reuse an order ID for a different order.

When a Sale Counts

A sale only counts if all of the following apply:

  • The body carries moeclid, value, shipping, type, items and currency.

  • moeclid is the value we appended to your landing page URL, unchanged. It identifies a click on one of your products.

  • The key is the one you received for the market of the endpoint you call.

  • Your sales tracking is active on our side. Your account manager activates it.

  • value is greater than zero.

  • The order has not already been counted. Send each order once, and send it again only to correct a report that was incomplete or used the wrong key.

CURL Examples

moebel.de
curl -X 'POST' \
  'https://redirect.moebel.de/api/1.0/moebel/de/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
meubles.fr
curl -X 'POST' \
  'https://redirect.meubles.fr/api/1.0/moebel/fr/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
meubelo.nl
curl -X 'POST' \
  'https://redirect.meubelo.nl/api/1.0/moebel/nl/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
moebel24.at
curl -X 'POST' \
  'https://redirect.moebel24.at/api/1.0/moebel/at/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
moebel24.ch
curl -X 'POST' \
  'https://redirect.moebel24.ch/api/1.0/moebel/ch/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "CHF",
  "order_id": "1172210481407"
}'
mobi24.es
curl -X 'POST' \
  'https://redirect.mobi24.es/api/1.0/moebel/es/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
mobi24.it
curl -X 'POST' \
  'https://redirect.mobi24.it/api/1.0/moebel/it/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "EUR",
  "order_id": "1172210481407"
}'
living24.pl
curl -X 'POST' \
  'https://redirect.living24.pl/api/1.0/moebel/pl/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "PLN",
  "order_id": "1172210481407"
}'
living24.uk
curl -X 'POST' \
  'https://redirect.living24.uk/api/1.0/moebel/gb/sales?key=0a7b3e5a-3748-4f2c-9874-9cb05e9a2c75' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "moeclid": "0f81f6c0-bee9-420f-8f1f-e9f7f79f5424",
  "value": "1499.97",
  "shipping": "29.99",
  "type": "s2s",
  "items": [
    {
      "item_id": "sp47886359",
      "quantity": 1,
      "price": 1499.97,
      "item_category": "Couches"
    }
  ],
  "currency": "GBP",
  "order_id": "1172210481407"
}'

Identify Traffic From Us

Communicate only sales and turnover based on traffic from one of our portals (moebel.de, meubles.fr, meubelo.nl, moebel24.at, moebel24.ch, mobi24.es, mobi24.it, living24.pl or living24.uk).

Through an Existing Query Parameter

Each user who comes to your shop from one of our portals will have an additional query parameter called moeclid attached to the URL. You can check for the existence of this query parameter to identify that this user was sent to you by us.

Through Your Own Query Parameter

When submitting your product catalog to us, you have the option to add parameters to the product deep links leading to each product’s detail page. This will enable you to determine if the user accessed the page through one of our portals.

  • Option 1: When submitting your product catalog, add a query parameter to each product url / deep link.

  • Option 2: Where available, configure the parameter in your Partner Portal, which then adds it to each link to your products. Otherwise, contact your account manager.

Your own parameter only identifies the traffic; it does not replace moeclid. Store and report the original moeclid in any case.

Report Direct and Post-Sales

We require that any purchase made within 90 days by a visitor who was referred to your store through one of our portals be reported to us using sales tracking.

By identifying traffic originating from one of our portals, you can create a cookie for those visitors that is valid for 90 days. During the checkout process of your store, you can check for the presence of the cookie and report the sales data accordingly. This allows you to track sales generated by visitors we referred to your store within the past 90 days.

If you have a mobile version of your store that is optimized for smartphones, it is important to ensure that it behaves in the same way as the desktop version.