Conversions serverseitig melden
Melden Sie Conversions an Styrar von Ihrem eigenen Backend aus in Node.js, Python oder Ruby on Rails.
Wenn eine Conversion auf Ihrem Backend passiert statt im Browser — zum Beispiel ein Webhook Ihres Zahlungsanbieters —, lesen Sie den styrar_ck-Wert aus der ursprünglichen Anfrage und senden Sie ihn direkt an denselben öffentlichen Endpunkt, den das Browser-Pixel verwendet. Siehe Conversion-Pixel für die vollständige Referenz.
Content-Type: application/json
{
"clickToken": "the styrar_ck value",
"eventName": "purchase",
"value": 49.99
}Node.js / Express
app.get('/checkout/complete', async (req, res) => {
const clickToken = req.query.styrar_ck || req.cookies?.styrar_ck;
if (clickToken) {
fetch('https://api.styrar.com/v1/pixel/track', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ clickToken, eventName: 'purchase', value: req.session.orderTotal }),
}).catch(() => {});
}
res.render('checkout-complete');
});
Python (Flask)
import requests
@app.route('/checkout/complete')
def checkout_complete():
click_token = request.args.get('styrar_ck') or request.cookies.get('styrar_ck')
if click_token:
try:
requests.post(
'https://api.styrar.com/v1/pixel/track',
json={'clickToken': click_token, 'eventName': 'purchase', 'value': order_total},
timeout=2,
)
except requests.RequestException:
pass
return render_template('checkout-complete.html')
Python (Django)
import requests
def checkout_complete(request):
click_token = request.GET.get('styrar_ck') or request.COOKIES.get('styrar_ck')
if click_token:
try:
requests.post(
'https://api.styrar.com/v1/pixel/track',
json={'clickToken': click_token, 'eventName': 'purchase', 'value': order_total},
timeout=2,
)
except requests.RequestException:
pass
return render(request, 'checkout-complete.html')
Ruby on Rails
require 'net/http'
require 'json'
class CheckoutController < ApplicationController
def complete
click_token = params[:styrar_ck] || cookies[:styrar_ck]
if click_token
begin
uri = URI('https://api.styrar.com/v1/pixel/track')
Net::HTTP.post(uri, { clickToken: click_token, eventName: 'purchase', value: @order_total }.to_json,
'Content-Type' => 'application/json')
rescue StandardError
nil
end
end
end
end
Jedes andere Backend
Der Endpunkt ist reines HTTP und JSON ohne Authentifizierung, daher funktioniert dies mit jeder Sprache, die eine HTTP-Anfrage stellen kann:
curl -X POST https://api.styrar.com/v1/pixel/track \
-H 'Content-Type: application/json' \
-d '{"clickToken":"<styrar_ck value>","eventName":"purchase","value":49.99}'
Kapseln Sie den Aufruf so, dass ein Tracking-Fehlschlag niemals den Ablauf stören kann, an den er angehängt ist — der Endpunkt gibt immer 200 { "ok": true } zurück, aber Sie sollten Netzwerkfehler trotzdem auf Ihrer Seite abfangen.