Back to docs

Links

Segnalare conversioni lato server

Segnala conversioni a Styrar dal tuo backend in Node.js, Python o Ruby on Rails.

Se una conversione avviene sul tuo backend invece che nel browser — ad esempio un webhook dal tuo fornitore di pagamenti — leggi il valore styrar_ck dalla richiesta originale e invialo direttamente allo stesso endpoint pubblico usato dal pixel del browser. Vedi Pixel di conversione per il riferimento completo.

RequestPOST
Content-Type: application/json

{
  "clickToken": "the styrar_ck value",
  "eventName": "purchase",
  "value": 49.99
}

Node.js / Express

JavaScript
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)

PYTHON
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)

PYTHON
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

RUBY
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

Qualsiasi altro backend

L'endpoint è HTTP e JSON semplice senza autenticazione, quindi funziona da qualsiasi linguaggio in grado di effettuare una richiesta HTTP:

Shell
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}'

Avvolgi la chiamata in modo che un fallimento del tracciamento non possa mai interrompere il flusso a cui è collegata — l'endpoint restituisce sempre 200 { "ok": true }, ma dovresti comunque intercettare gli errori di rete sul tuo lato.

Correlati

Join the beta waitlist

By signing up you agree to receive marketing email. See our Privacy Policy.