FAQ

How can we download the clicklog-reports via API v3?

We prepared two step-by-step instructions on how to do this in German and English

Can we get the export files as JSON-Response?

At the moment we only support the download of a file. The file is compressed linewise JSON. Every line in the file is valid JSON. We have millions of offers if we return it in a single response in one JSON-object - this object would contain multiple GB of data in some cases. The download of the offers would be more complicated if we add pagination or other structure to achieve data chunks. If you wish to have a endpoint which returns chunks with valid JSON each, please contact your syndication contact and we'll consider providing this in the future.

Click statistics

Click statistics are available via the data_source "clicklog_export". To be compatible to old versions, the format of this is currently still CSV. The field "format" shows the current format, if we change the format from CSV to JSON we will also change the value of this field.

Shop traffic disable

The field "is_online" in shopsv3 is a bool. If the bool is false or if a shop is not included in the current shop export, it is not allowed to send traffic to this shop's offers.

Salestracking & ad blockers

Does the salestracking work even when using ad blockers?

Yes, we carried out a test order with AdBlock plus (according to our research, the most used ad blocker). Result is, that the order was recorded correctly. All in all, tracking should work with ad blockers.

Recognize blacklisted shops in API / exports

Definitions

  • Blacklisted = The shop / offers cannot be found in the API / exports. This shop-access is blocked because of e.g. unreached traffic goals.
  • Offline = The shop / offers can be found in the API / exports, but it is not possible to send clicks on offers. The shop is temporarily offline due e.g. a monthly used up budget.

Handling

  • API: only transfers shops that are online & whitelisted → LIVE-API
  • Exports: All offers are always included in the offer deltas since there are no deletions. In the shop deltas, on the other hand, the deleted shops are listed. This means it is necessary to query the shop deltas in order to check which offers can be used.

Is it correct that you release delta files before the corresponding base file is released?

Yes, there is a time delay in providing the base-files because of their file size. Since the base file is larger than the delta files, it takes more time to prepare it, while the delta files are written faster.

To avoid these kind of corner cases, bases must be applied when new ones appear. In this case, there could be the following procedure:

Assuming you have already applied a base and now regularly receive deltas, then these deltas must be applied sorted according to their created timestamp. If the new base now comes at 3:15 p.m. with the timestamp created = Jul 17, 2020 12:00:00 PM this base must be applied according to our specifications. After that, when the new base is applied, your database has the status of 12 PM. That means all delta changes that came afterwards have to be reapplied. In this specific case, all deltas till 3:15 p.m.

In summary, it is important that the deltas that were previously available, but have a later time stamp after the base are applied in order not to miss any changes.

What are the endpoints of the exports / download URLs for V3?

The procedure is as follows:

  1. https://api.solutenetwork.com/content/v3/exports shows a list with all exports that can be downloaded.
  2. Extract the value from id for the downloading export
  3. insert the value id here https://api.solutenetwork.com/content/v3/export-files/{id}
  4. The file is zipped and internally has the format linewise-json.

If only offers-, shops- or similar files are required, it is possible to filter the first call: https://api.solutenetwork.com/content/v3/exports?data_source=offersv3 or  https://api.solutenetwork.com/content/v3/exports?data_source=shopsv3

Where can I access the product categories for the INT feeds?

The international feed has no categories.

What rate limit do we have with our API for queries?

The rate limit is set to a maximum of 100 requests per second.

Does the new JSON feed have the following information: old_price and has_image?

Yes, the new feed has these fields. If further fields are missing, please contact us at [email protected].

Why am I getting an empty delta file?

An empty file does not represent any changes within the last 20 minutes. It is no bug.

Some products have now a category id of 0. Is this a bug on your side?

category_id = 0 means that the offer currently has no category. The reason for this is that the categorizing or matching is still pending.

What is availability_code and availability_text?

What information do the fields contain? Does the traffic light colour system relate to the delivery time or the stock level?

  • The availability_code represents four colours. Each colour represents a delivery time:
    • green = up to 3 days delivery time
    • yellow = up to 14 days
    • red = more than 14 days
    • grey = no information available`

Which fields of the API or export are excluded from access?

There are some fields that are only reserved for billiger.de. Examples are:

  • product variants
  • reviews
  • datasheets

Do we also pass the corresponding VAT rate in the individual offer in our feed?

No, the VAT rate is not handed over.

The offer has a merchant ID that cannot be found in the shop base

Only shops that are online are exported via API or export. To deactivate this, we need to set the capability offline_shops_in_exports. After that it is important to differentiate is_online = true and is_online = false.

Sub-Campaign Tracking

An additional query parameter log can be appended to clickout_link URLs for adding customized tracking data to billiger.de's reports. Example:

https://www.billiger.de/common/modules/api/cmodul?p=&id=&mc=***&log=your_own_tracking_string

Make sure to percent-encode special characters in your log parameter. For further details please refer to this page RFC 3986.