Ping back URL/en: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
| Line 21: | Line 21: | ||
Acceptable characters: [A-Za-z0-9_] Latin letters, Arabic numerals, underscore. Maximum length is 200 characters. | Acceptable characters: [A-Za-z0-9_] Latin letters, Arabic numerals, underscore. Maximum length is 200 characters. | ||
== Testing your endpoint == | |||
You can verify that your ping-back endpoint is working with the following curl command: | |||
<syntaxhighlight lang="bash"> | |||
curl -v -X POST -k 'https://example.com/ping-back' \ | |||
-H 'content-type: application/json' \ | |||
--data-raw '{"kmnrId":"50d9ecc6-402b-4a74-9397-fc20f2980567","kmnrKey":111111111,"fraud":1,"block":0,"reason":"Spoofing","sub1":"sub1 value","sub2":"sub2 value","sub3":"sub3 value","sub4":"","sub5":"","sub6":"","sub7":""}' | |||
</syntaxhighlight> | |||
Replace: | |||
* <code>https://example.com/ping-back</code> — your ping-back URL | |||
* <code>111111111</code> — your kmnrKey | |||
* <code>50d9ecc6-402b-4a74-9397-fc20f2980567</code> — any random kmnrId | |||
The request should return HTTP 200. | |||
= Response format = | = Response format = | ||
Revision as of 14:16, 24 June 2026
If you want to receive the verification results for each click on your own URL, you can do so using the Ping-back URL option.
Option activation
Ask your manager to activate the Ping-back URL option on your integration.
Once enabled, specify your URL in the settings.
kmnrId
To understand which impression we've checked, you need to mark it.
If you have an JS check-type integration, add the kmnrId key to window.kmnr with any unique identifier convenient for you. By this identifier you can later recognize the impression.
If you have an Redirect-type integration, add kmnrId to URL:
https://kaminari.systems/v1/click?kmnrKey=111111111&kmnrId=IMPRESSION_UNIQ_ID&u=https%3A%2F%2Fsome.url
Acceptable characters: [A-Za-z0-9_] Latin letters, Arabic numerals, underscore. Maximum length is 200 characters.
Testing your endpoint
You can verify that your ping-back endpoint is working with the following curl command:
<syntaxhighlight lang="bash"> curl -v -X POST -k 'https://example.com/ping-back' \
-H 'content-type: application/json' \
--data-raw '{"kmnrId":"50d9ecc6-402b-4a74-9397-fc20f2980567","kmnrKey":111111111,"fraud":1,"block":0,"reason":"Spoofing","sub1":"sub1 value","sub2":"sub2 value","sub3":"sub3 value","sub4":"","sub5":"","sub6":"","sub7":""}'
</syntaxhighlight>
Replace:
https://example.com/ping-back— your ping-back URL111111111— your kmnrKey50d9ecc6-402b-4a74-9397-fc20f2980567— any random kmnrId
The request should return HTTP 200.
Response format
After receiving, processing the data, and making a decision about the bot status of the click, we send the decision to you in JSON POST format.
{
"kmnrId": "50d9ecc6-402b-4a74-9397-fc20f2980567",
"kmnrKey": 111111111,
"fraud": 1,
"block": 1,
"sub1": "sub1 value",
"sub2": "sub2 value",
"sub3": "sub3 value",
"sub4": 444,
"sub5": 555,
"sub6": "",
"sub7": ""
}
By kmnrId and sub-tags you can find the impression in your stat.
| Name | Value |
|---|---|
| kmnrId | Unique identifier convenient for you |
| kmnrKey | Integration identifier |
| fraud | 1 if the hit is fraudulent, 0 if the hit is non-fraudulent, |
| block | 1 if the hit was blocked according to the integration settings, 0 if the hit wasn't blocked |
| sub1 | Sub-tags that were sent with the hit |
| sub2 | ... |
| sub3 | ... |
| sub4 | ... |
| sub5 | ... |
| sub6 | ... |
| sub7 | ... |
If you receive a ping-back, your server should respond with a status 200. Otherwise, we make three more attempts to send the request. If the ping-back still cannot be delivered, you can always retrieve the status for any click via our API, which serves as the reliable source of truth regardless of delivery success.

