Skip to content

Nexus derives these outcomes automatically from the metrics payload you send on each attribution. You configure nothing. Send accurate data on every transaction.

You send the metrics payload when you attribute a transaction to a member.

POST/attributions/transactions
"metrics": {
"conversion": {
"lastPurchase": {
"date": "2026-04-01T00:00:00.000Z",
"platform": "iOS"
},
"totalSpendToDate": {
"total": 4999,
"currency": "USD"
}
}
}
FieldWhat it representsRequired?
lastPurchase.dateThe player’s most recent purchase date before this transaction (regardless of creator support)Strongly recommended
lastPurchase.platformPlatform of that prior purchaseOptional
totalSpendToDate.totalTotal the player has spent before this transaction (not including it)Strongly recommended
totalSpendToDate.currencyCurrency of the spend totalOptional

Send when the player has never purchased before.

"lastPurchase": { "date": null },
"totalSpendToDate": { "total": 0, "currency": "USD" }

Either signal is sufficient, but sending both is preferred:

  • lastPurchase.date: null (explicit signal, preferred)
  • totalSpendToDate.total: 0 (inferred signal if no date is available)

Send when the player has purchased before and their last purchase was 30 or more days ago.

"lastPurchase": { "date": "2024-09-15T00:00:00.000Z" },
"totalSpendToDate": { "total": 12999, "currency": "USD" }

Nexus measures the 30-day gap between lastPurchase.date and the transaction date on the current attribution. This applies only if Nexus has never classified the player as Converted before.

No special payload required. Nexus derives this automatically.

If the player was previously Converted or Reactivated at any point in history, and the current transaction shows a lastPurchase.date 30 or more days prior, Nexus counts them as a Repeat Reactivation instead of a new Reactivation.

Keep sending an accurate lastPurchase.date on every transaction. Nexus handles the rest.

Send when the player is an active payer returning within their normal purchase cycle.

"lastPurchase": { "date": "2024-11-20T00:00:00.000Z" },
"totalSpendToDate": { "total": 4999, "currency": "USD" }

If lastPurchase.date is less than 30 days before the transaction date, the player does not increment any metric. This avoids inflating reactivation numbers for regular active spenders.

lastPurchase.datetotalSpendToDate.totalGap to transactionResult
null0N/AConverted
null> 0 or not sentN/AConverted
not sent0N/AConverted
valid dateany≥ 30 days, never ConvertedReactivated
valid dateany≥ 30 days, previously Converted or ReactivatedRepeat Reactivation
valid dateany< 30 daysNot counted
not sentnot sentN/ANot counted (payload too ambiguous)