Authenticating...
Skip to main content

TopCashback Integration Data Flow

A partner-specific data flow for the TopCashback (TCB) integration, written to answer the kind of question a vendor security review asks: what data crosses each boundary, who processes it, where does it come to rest, and for how long.

For the generic, publisher-agnostic view see Offerwall Integration Architecture.

Integration shape. TopCashback is a link-out (Direct Link), non-SDK integration. No AdGem code runs inside a TopCashback client. Publisher 32172, app 33062.

Entry is fronted by Partnerize, TopCashback's affiliate tracking platform. This means the flow has an inbound leg from a third party and an outbound conversion leg back to that third party, neither of which appears in the generic diagram.

Partnerize is also the only return channel. Unlike a standard publisher integration, AdGem does not post a conversion webhook directly to the publisher's backend here. Conversions go to Partnerize, which forwards to TopCashback, and TopCashback issues the member reward.

Sequence, with data annotated​

Third parties in the TopCashback path​

PartyRolePersonal data it seesDirection
Partnerize (prf.hn)TCB's affiliate tracking platformclickref, custref (TCB member ID), country, currency, conversion valueInbound redirect + outbound from AdGem
CloudflareTLS termination / WAF in front of api.adgem.com and dashboard.adgem.comAll request data in transit: IP, user agent, cookies, URL parameters including playeridProcesses on AdGem's behalf
TuneClick tracking and campaign managementClick identifiers, device identifiers, IP, geoProcesses on AdGem's behalf
DatadogObservabilityApplication logs containing IPs, Play IDs, device identifiersProcesses on AdGem's behalf
AWSCloud infrastructure and hostingAll of the above at rest and in transitProcesses on AdGem's behalf

Geolocation is resolved against a locally hosted MaxMind GeoIP database. No request data is sent to MaxMind, so it is a data supplier rather than a party in this flow and does not belong on the table above.

Edge topology​

The two AdGem-facing origins sit behind different edges, which matters when reasoning about who terminates TLS:

  • adunits.adgem.com (offerwall UI) is served by AWS Amplify through CloudFront. Confirmed by response headers: via: CloudFront, x-cache: Hit from cloudfront.
  • api.adgem.com and dashboard.adgem.com are fronted by Cloudflare, which terminates TLS for those origins.

Subprocessor classification. The useful line is direction of flow. Where personal data leaves AdGem to a third party that processes it on our behalf, that party is a subprocessor. Where a third party supplies reference data we consume locally, it is a supplier and no personal data leaves.

On that test Cloudflare, Tune, Datadog and AWS are subprocessors. MaxMind is a supplier, since we resolve geolocation against a locally hosted GeoIP database and no request data leaves for it.

Partnerize is the ambiguous one. AdGem posts conversion data to it, but it is TopCashback's own platform, engaged at TopCashback's instruction. That reads more like an onward disclosure to the partner's processor than an AdGem subprocessor. Either way it belongs on this diagram. Classification is a legal call, not an engineering one.

Data inventory​

Field lists are drawn from ADR 0044, Appendix A.

CategoryFieldsCaptured atComes to rest in
Publisher-supplied identifierplayer_id (TopCashback member ID)Entry URLPostgres, Redshift, outbound to Partnerize as custref
Affiliate click referencec1 / clickrefEntry URLClickEvent (Postgres), echoed to Partnerize
AdGem identifieradgem_uidClickPostgres, Redshift
Network / device identifiersip, idfa, gaid, oaid, android_id, useragent, platform, os_version, connection_type, carrier_name, ispClick and post-install eventsPostgres, Kinesis → Firehose → S3 → Redshift
Geographiccountry, city, postal_code, lat/lonClickPostgres, Redshift
Campaign / transactionapp_id, campaign_id, publisher_id, transaction_id, payout, offer_name, goal_nameClick and conversionPostgres, Redshift, outbound to Partnerize

AdGem does not receive TopCashback account credentials, email addresses, or payment details. The member ID is a pseudonymous identifier issued by TopCashback.

Jurisdiction​

All AdGem processing and storage is United States based (AWS US regions). TopCashback is UK based, so member data moves US-ward on entry. Transfer mechanism is governed by the DPA and is a legal question rather than an architectural one.

Retention​

Adopted January 2026, enforcement targeted for Q1 2027. ADR 0044 establishes a uniform 12-month retention standard for personal and indirect PII, after which data is deleted, anonymized or aggregated. It was accepted on 2026-01-27, but the automated deletion and anonymization workflows described in it have not been built. The ADR says so in its own Context section: data currently persists indefinitely in Redshift, S3 Firehose archives and production Postgres.

Automated enforcement is targeted for Q1 2027. For the TopCashback integration specifically that ordering works out: the integration enters service in Q3 2026, so no TopCashback data reaches the 12-month threshold until roughly Q3 2027, comfortably after enforcement lands.

Anything stated externally should describe 12 months as a standard adopted earlier this year with implementation in progress, not as a control operating today.

StorePolicy target (ADR 0044)Implemented today
Redshift / S3 Firehose12 months, then anonymize or deleteNo, retained indefinitely
Production PostgresActive campaign + 12 monthsNo, retained indefinitely
RDS automated backups7 daysYes, existing AWS configuration
Redshift automated snapshots1 dayYes, existing AWS configuration
Redshift manual snapshotsMax 365 daysNo, currently indefinite
Aggregated / anonymized dataIndefinite, no PIIn/a

Third-party constraint worth noting: Tune retains transactional detail for 123 days, then summary data only.

Open items​

  1. commission macro. The configured outbound postback currently sends commission:{payout}. Partnerize guidance is that commission should be the reward to the end user, which suggests commission:{amount}. Raised by Kevin Brogan, unresolved. Integration detail rather than a data-flow question, so it does not belong in partner-facing collateral.
  2. Retention implementation owner. Q1 2027 is the target date; the owning team is not yet named.

A partner-facing version of this flow lives in the repository at partner-collateral/topcashback-data-flow.pdf, with its HTML source and regeneration instructions alongside it. That version drops code names and ADR references, omits the open items above, and states geolocation and edge topology in terms an external reviewer can act on.

The two documents describe the same system and must stay consistent. Neither is generated from the other, so a correction here needs applying there by hand.