RevenueHogdocs← back to app

Live feed & events.

every badge in the feed, the apple notification behind it, and what the amount means.

What the feed shows

The feed is the per-event view of Apple's App Store Server Notifications V2: one row per verified notification, the moment it arrives. Each row shows the event badge, the app, the product, the customer (see customers & LTV), the country from the transaction's storefront, and a signed USD amount: positive for money in, negative for churn and refunds, $0.00 for trial starts.

Amounts come from the signed transaction inside each notification (Apple reports prices in milliunits of the local currency; 39990 means 39.99) and are converted to USD with daily ECB reference rates, the same conversion the metrics methodology describes. Some churn payloads carry no price; those rows show no amount rather than a guess.

Event badges

badgeapple notificationwhat it means
BUYgreen, +$SUBSCRIBED · ONE_TIME_CHARGE · OFFER_REDEEMEDA new or returning purchase: a paid subscription start, a resubscribe, a one-time purchase, or an offer redeemed as a first/again purchase.
TRIALcyan, $0.00SUBSCRIBED (free-trial transaction)A free trial started. Detected from the signed transaction's offer type, with the trial length shown (e.g. “7d trial”).
RENEWgreen, +$DID_RENEW · OFFER_REDEEMED (UPGRADE/DOWNGRADE)A renewal billed successfully, including recoveries from billing retry and plan changes on an already-active subscription.
CONVgreen, +$DID_RENEW (first renewal of a trial)Trial converted to paid. Apple has no dedicated conversion type. RevenueHog detects the first renewal of a subscription whose initial transaction was a free trial.
CHURNred, −$EXPIRED · GRACE_PERIOD_EXPIRED · REVOKE · DID_CHANGE_RENEWAL_STATUS (AUTO_RENEW_DISABLED)The subscription ended (expired, grace period ran out, access revoked) or the user turned auto-renew off, shown as “unsubscribed”, since they keep access until the period ends.
RFNDamber, −$REFUNDApple refunded a transaction; the amount subtracts from LTV.

Two deliberate exclusions: DID_FAIL_TO_RENEW (billing retry) is churn risk, not churn: most retries recover, so it stays out of the feed and out of alerts. And unknown or future Apple notification types are recorded but not rendered, so a new type Apple ships can never break ingestion.

Trial → paid detection

Apple does not send a "trial converted" notification. A conversion arrives as an ordinary DID_RENEW. RevenueHog remembers which subscriptions started as free trials and classifies the first renewal of such a subscription as CONV("trial → paid"). Later renewals are plain RENEWs.

Sandbox vs production

Every event carries its Apple environment. The feed shows production events by default; sandbox events (from development builds and Apple's accelerated-clock test subscriptions) are hidden unless you enable them under settings → notifications. Sandbox push alerts are a separate toggle, also off by default.

Event detail & forwarding status

Opening an event shows the full decoded facts (notification type and subtype, environment, product, amount and currency, storefront) plus the event's forwarding status when the app has forwarding endpoints configured: delivered, failed (with the HTTP status), or skipped when no endpoint is set for the event's environment.

No events yet?

Apple only sends notifications when something happens. Wire S2S per the setup guide, then make a sandbox purchase or use the send-test button on the app detail page.