pixellint

The MMP endpoint is a contract

App install is not session is not in-app purchase. SKAN is a conversion value, not a click id. IDFA needs ATT. These pages are the identifier you are still allowed to send.

Validate a pixel or CAPI All docs

MMP server-to-server in-app events MobileengineersPMs Adjust, AppsFlyer, and Branch S2S endpoints are contracts: required tokens, device ids, clocks, and unhashed IP. A 200 from the MMP does not mean the event was recorded. Validate the body before you retry. Pixellint packs encode the documented fields, not SKAN postbacks. SKAdNetwork vs MMP MobilePMsengineersmarketers SKAdNetwork attributes iOS campaigns with a conversion value and a delayed Apple postback. It is not a click id, not an MMP device id, and not a replacement for S2S in-app events. Map values on purpose or the postback is a coin flip. Pixellint does not validate SKAN postbacks. App install vs session vs in-app events MobilePMsmarketersengineers Install, first open, session, and in-app purchase are different MMP events. Firing purchase on first open inflates ROAS. Firing install on every session inflates CPI. Name the event the vendor catalog uses, then S2S it once. Adjust tokens are opaque. AppsFlyer eventName is a string. Branch distinguishes standard and custom endpoints. Deferred deep links Mobileengineersmarketers A deferred deep link sends the user to the store, then into the app on first open with the click context. If the MMP cannot stitch the click to the install, they land on home and you lost the campaign creative's promise. Deferred is an MMP feature, not an OS feature. Web-to-app measurement MobilePMsengineersmarketers A paid click on the web that converts in the app needs a bridge: MMP, Meta app events, or SKAN. The web pixel alone stops at the store page. Store the web click id before the user leaves for the store. action_source=app on CAPI. Do not fire website Purchase when the charge happened in IAP. IDFA vs GAID MobileengineersPMs IDFA vs GAID: IDFA is iOS advertising, gated by ATT. GAID is Android advertising (gps_adid, aaid, advertising_id). IDFV is per-vendor on iOS, not an ads cookie. Sending the wrong one in the wrong MMP field looks populated and matches nobody. Zeros means denied. In-app purchase events MobileengineersPMs Store receipts are the source of truth for IAP. SDK-observed purchases can fire twice, fire on restore, or fire before charge. Validate with Apple or Google, then S2S to the MMP with the real value and ISO currency. Restores are not purchases. A 200 from the MMP does not prove the revenue dashboard moved. Probabilistic mobile attribution after ATT MobilePMsengineers Probabilistic matching (IP, user-agent, time) filled gaps when IDFA was everywhere. After ATT it is noisier. SKAN, consented IDFA, and deterministic MMP clicks are the planned replacements, not a better fingerprint. Do not hash IP. Pixellint flags hashed IP on Adjust and AppsFlyer. It will not tell you the unhashed IP was CGNAT.