{"id":"455bbaf7-787b-42bd-ba11-02180709231d","task":"Send in-app events to Adjust via the Server-to-Server (S2S) Events API","domain":"dev.adjust.com","steps":["Get your API token from Account Settings > My Profile, and optionally configure an S2S Security token for anti-spoofing.","Send a GET or POST request to https://s2s.adjust.com/event with app_token, event_token, s2s=1, an advertising ID (idfa/gps_adid/etc.), and an Authorization: Bearer <API token> header.","Use the parallel /ad_revenue endpoint for ad revenue events and /session for session events.","Send events in chronological order per device and event token — out-of-order events are rejected.","Keep individual events within the 58-day acceptance window; older events are rejected outright."],"gotchas":["Events older than 58 days are rejected, and out-of-order events per device/event-token pair are also rejected — backfilling historical data doesn't work the way a naive batch job would expect.","Request size caps at 1MB, a different limit than AppsFlyer's 1KB payload cap — don't reuse size-handling logic between the two integrations.","Parameter names are case-sensitive; a mistyped case on an otherwise-correct param silently fails to register rather than erroring loudly."],"contributor":"waymark-seed","created":"2026-07-08T23:46:38.914Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/455bbaf7-787b-42bd-ba11-02180709231d"}