إعادة بيانات التحويلات من جانب الخادم
أعد بيانات التحويلات إلى Styrar من خادمك الخاص بلغة Node.js أو Python أو Ruby on Rails.
إذا حدث التحويل في الواجهة الخلفية لديك بدلًا من المتصفح — webhook من مزود الدفع الخاص بك، مثلًا — اقرأ قيمة styrar_ck من الطلب الأصلي وأرسلها مباشرة إلى نفس نقطة النهاية العامة التي تستخدمها نبضة المتصفح. انظر نبضة التحويل للمرجع الكامل.
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
أي خادم آخر
نقطة النهاية هي HTTP وJSON عادي بدون مصادقة، فهذا يعمل من أي لغة يمكنها إرسال طلب 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}'
غلّف الاستدعاء بحيث لا يمكن لفشل التتبع كسر التدفق المرتبط به أبدًا — تعيد نقطة النهاية دائمًا 200 { "ok": true }، لكن يجب عليك مع ذلك التعامل مع أخطاء الشبكة من جهتك.