RevenueHogdocs
Dashboard

Apps

The Apps list and app detail page: revenue tiles, top products, Apple Ads, TestFlight, ingest URL, S2S audit, forwarding, nickname, history import and refunds.

The Apps page (/apps) lists every connected app; clicking one opens its detail page (/apps/<id>), which holds the per-app revenue view and every per-app setting.

Apps list

The header shows N connected. Columns: APP (icon, name, bundle ID and platform), MRR, Δ 30D, SUBS, TRIALS, CHURN, REACH 30D, S2S, 90D. They match the Overview apps table, plus REACH 30D: impressions, page views and downloads over 30 days (hover for exact counts, click for the app's Metrics). REACH is blank when Apple has sent no analytics for the app. The TRIALS column honors Count cancelled trials as active.

Connect an app at the bottom goes to Settings → Connections. Icons and ratings refresh in the background after the page loads.

App detail

Back arrow (to Apps, or to Webhooks when you came from there), icon, name, bundle ID (or the Stripe account ID for a web app), and the live App Store version with its state (green when live, red when rejected or invalid, cyan otherwise) plus any pending version. While a submission is with Apple, a banner reads, for example, v2.3 in review since Oct 24, 3:12 PM (ready for review, waiting for review or in review).

If the app sends SDK data without App Attest and no device has enrolled, a notice says it is sending unverified SDK data, which is expected for simulator or React Native builds. See SDKs.

Revenue

From Apple's sales reports over the last 30 days, each with a change vs the prior 30 days:

TileMeaning
NET · 30DDeveloper proceeds
GROSS · 30DCustomer-paid
UNITS · 30DUnits sold
REFUNDS · 30DRefund count (a decrease is green)
NET · ALL TIMELifetime proceeds, $X gross · since Mon YYYY

NET REVENUE / DAY charts daily proceeds (hover for gross and units). TOP PRODUCTS · 30D lists up to 6 products by proceeds. ACTIVE SUBS BY PRODUCT lists the current paying base per product from the latest snapshot, with each product's MRR.

Apple Ads

APPLE ADS · 30D, as on Attribution, when the app had spend.

TestFlight

A TESTFLIGHT card for App Store apps with builds. See TestFlight.

Source cards

  • STRIPE (web apps): account, test mode, whether events arrive instantly (webhook) or refresh every 4 hours (polling, see Connect Stripe), the last event time, a revoked-key warning, Manage the connection → and Open Stripe ↗. See Connect Stripe.
  • GOOGLE PLAY (Android apps): package, last notification, the Pub/Sub push URL with a copy button, and Manage the connection →. See Connect Google Play.

The sections below (paywall through refund requests) appear only for App Store apps.

Paywall

Manage entitlements and experiments → opens /apps/<id>/paywall: server-driven SKUs per entitlement, with A/B experiments over the offer set. See Paywall and Experiments.

Apple ingest URL

The app's unique server notifications URL (/api/s2s/apple/<token>) with Copy ingest URL. Set it in App Store Connect; RevenueHog verifies each notification, then forwards it to you. See server notifications.

S2S configuration

Check configuration reads what App Store Connect currently posts to, per environment (PRODUCTION, SANDBOX): RevenueHog, Wrong token, Third-party, Not set or Unknown. It re-checks automatically when the last check is older than 10 minutes.

If an environment does not point at RevenueHog, Fix: point Apple here & forward to your current URL… then Confirm: update Apple & save forwarding re-points Apple and saves your previous URL as that environment's forwarding destination. Forwarding URLs you already set are never overwritten, and a previous URL that was itself a RevenueHog address is not saved.

Send sandbox test and Send production test ask Apple to send a test notification and report Apple delivered and received by RevenueHog.

App Store Connect webhook

Apple can push App Review decisions, build processing and TestFlight feedback the moment they happen. Connect webhook creates one webhook on the app (events: App version state, Build upload state, External build state, TestFlight crash feedback, TestFlight screenshot feedback). When connected: Check, Send test, Remove, with checked … and last delivery …. When not: "Not connected. Version and TestFlight changes arrive on the regular sync instead."

Forwarding endpoints

production s2s url and sandbox s2s url, then Save forward URLs. Apple's exact signed payload is re-delivered to these URLs; leave one blank to skip that environment. HTTPS only. A URL that has never accepted a delivery shows a NEVER DELIVERED notice (· PAUSED once suspended). See forwarding.

Nickname

NICKNAME replaces the App Store name across RevenueHog (placeholder "App Store name"). The store name is kept.

Notification history

Import 180-day history pulls Apple's stored server notifications for the last 180 days to fill the feed, customer timelines and trial history from before the app was connected. Events older than 180 days are gone for good, and no alerts are sent for imported events. Result: N imported · N already known, plus · N failed verification and · more remain, run it again to continue when relevant. Re-running is always safe.

Refund requests

How Apple refund requests for this app are answered: Inherit, Grant, Decline, No pref. Inherit shows the workspace default (set in Settings → Preferences → REFUNDS), for example Inherits org default: no response (Apple decides).

Recent activity

The app's latest 30 events under the feed's day headers, with Open in feed →. Empty: "No revenue events yet."

Recent events

RECENT EVENTS lists raw notifications with type, subtype, environment, time, and forwarding status (Delivered, Failed, Suspended, Pending, Skipped) with each delivery attempt and its HTTP status. Empty: "No notifications received yet."

Last updated on

On this page