Report sales to your own Meta and Google Analytics accounts from Kyloth's servers
Connect your own Meta Conversions API token or GA4 API secret, run a test event, and let Kyloth report a sale to your account when the shopper allowed it.
Where: Dashboard, Settings, Server-side conversions
A browser tag only sees a sale if the shopper allowed it and kept the page open. Server-side reporting sends the sale from Kyloth's servers to your own Meta or Google Analytics account instead. It uses a token or secret you create in your own account. Kyloth has no ad account of its own, never reports a sale for a shop that has not connected one, and never uses one shop's credential for another. It is off until you switch it on, per account.
- First add the matching ID under Advertising and measurement tags: your Meta Pixel ID for Meta, or your GA4 measurement ID (it starts with G-) for Google Analytics. A GT- Google tag ID cannot receive server reports. Kyloth sends to the same ID your browser tag uses.
- Open Settings, Server-side conversions. For Meta, create an access token in Events Manager (Settings, Conversions API, Generate access token) and paste it. For Google Analytics, create an API secret in GA4 (Admin, Data streams, your stream, Measurement Protocol API secrets) and paste it. Select Connect. The credential is stored encrypted and is never shown again; the page shows only its last four characters.
- For Meta, also paste a Test Event Code from Events Manager, Test Events. Select Send a test event. Meta shows it in Test Events; it cannot count as a real sale because Kyloth refuses to send a Meta test without a code. For Google Analytics the test is checked by Google's validation address and records nothing in your reports. A refusal shows the platform's status code and nothing else it said.
- When the test is accepted, switch on Send purchases from Kyloth's servers for that account. Saving a credential never switches anything on.
Which orders are reported. Only a sale whose shopper allowed the purpose when they ordered: Meta needs the shopper's choice to Measure this shop's ads, Google Analytics needs Measure visits to this shop. Kyloth records that choice with the order. An order with no recorded choice, an order placed by a browser sending Global Privacy Control or Do Not Track, and any order placed before this was built are never reported. A cash order is reported when it is placed, so a parcel that is later refused or returned is not taken back out of your Meta or Google reports. An order paid online is reported when the payment is confirmed. A cancelled or returned order is never reported, and nothing older than 7 days is sent to Meta or older than 72 hours to Google Analytics. An order paid by a UPI reference you reconcile yourself is not reported from the server; your browser tag still reports it if the shopper allowed it.
What is sent. The order total in rupees, the currency, the product IDs and quantities (and product names to Google Analytics), the order's time, and an identifier shared with the browser event so the platform counts the browser and the server report as one sale. When the shopper allowed marketing, Kyloth also sends a one-way hash of the buyer's email and phone, which the platform uses to match the sale to an ad; the plain email and phone are never sent. Names, addresses, order links and IP addresses are never sent. Google Analytics shows a server report as its own visitor, because the browser's analytics identity is deliberately not collected, so it does not join a shopper's browsing session.
What you can see. The panel lists the most recent reports with the order number, the account and the result: Sent with the platform's status code, Not sent with the reason (most often that the shopper had not allowed it), Retrying, or Gave up. A report the platform could not take is retried with growing waits up to eight times; one the platform refuses outright (a wrong or expired token) is not retried, so fix the credential and replace it. The last 30 days summary counts sent, not allowed, waiting and given up. Kyloth keeps the status code and a reason, never what the platform replied.