Revcontent
Revcontent is a native advertising and content-recommendation network. Datafly Signal delivers conversions to Revcontent server-to-server (S2S) using Revcontent’s conversion postback endpoint. When a visitor clicks a Revcontent ad, Revcontent appends a unique click identifier (rc_uuid) to your landing-page URL. Signal captures that identifier first-party, persists it, and replays it on the matching conversion event so Revcontent can attribute the conversion without a client-side pixel.
This integration is conversion-only: there is no page-view or browsing ingest path. Only conversion events (purchase, lead, sign-up) are delivered.
Why route Revcontent through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Revcontent optimises against are not filtered by the browser.
- Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Revcontent needs to attribute the event to the right session.
- Click identifiers are captured and replayed. Signal stores
clickidfirst-party at collection time and attaches them to the conversion later, so attribution survives even when the original landing cookie has expired. - One consent decision governs every destination. Revcontent is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
- A Revcontent advertiser account with active campaigns.
- Your Revcontent API Key (Account Settings).
- Datafly.js installed on your site, configured to capture the
rc_uuidURL parameter (see Identity Signals below). - Your Revcontent destination URLs must forward all query parameters through any redirects, otherwise
rc_uuidis dropped before it reaches the landing page.
Configuration
| Field | Required | Description |
|---|---|---|
| API Key | Yes | Your Revcontent API access key, from Account Settings. Sent as the api_key query parameter on every postback. |
Configure in Signal
- In the management UI, go to Integrations and add Revcontent.
- Paste your API Key.
- Attach the Revcontent integration to the pipeline that carries your conversion events.
- Select the Default preset, which maps
Order Completed,Lead Generated, andSigned Upto the Revcontent postback. - Save and enable.
API Endpoint
GET https://trends.revcontent.com/api/v1/conversion.php
?api_key={api_key}&rc_uuid={rc_uuid}&amount={amount}| Parameter | Required | Description |
|---|---|---|
api_key | Yes | Your account API key (injected by Signal from the integration config). |
rc_uuid | Yes | The Revcontent click identifier captured on the landing page. |
amount | Yes | Conversion value. Must be a non-zero integer. |
user_ip | No | IP address of the user who clicked. Improves match quality. |
user_agent | No | User-agent string of the user who clicked. |
Signal sends one GET request per conversion. The endpoint returns a 2xx response for any well-formed request, so a successful HTTP response does not guarantee a matched conversion. Always validate end-to-end in your Revcontent dashboard conversion report.
Identity Signals
Revcontent attribution depends entirely on the click identifier rc_uuid:
- On the first page of the visit, Revcontent appends
?rc_uuid=...to your landing-page URL. - Datafly.js reads the
rc_uuidURL parameter and stores it first-party so it survives across pages until the conversion happens. - On the conversion event, Signal reads the stored identifier as
vendor_ids.rc_uuidand sends it to Revcontent.
If rc_uuid was never captured (the visitor did not arrive via a Revcontent ad, or a redirect stripped the parameter), the conversion cannot be matched and Revcontent discards it.
No hashed email, phone, or consent field is accepted by this endpoint — matching is on rc_uuid only. Apply any consent gating upstream in your pipeline.
Event Mapping
| Datafly.js event | Revcontent | Notes |
|---|---|---|
Order Completed | conversion postback | amount from properties.revenue |
Lead Generated | conversion postback | amount from properties.value |
Signed Up | conversion postback | amount from properties.value (set a fixed value if registrations have no monetary value) |
amount must be a non-zero integer. Map a whole-dollar value; fractional amounts may be rejected or mis-counted.
Example
Track a purchase with Datafly.js:
datafly.track("Order Completed", {
order_id: "ORDER-12345",
revenue: 79,
currency: "USD"
});Resulting Revcontent postback (the rc_uuid is supplied automatically from the value Datafly.js captured on the landing page):
GET https://trends.revcontent.com/api/v1/conversion.php
?api_key=YOUR_API_KEY
&rc_uuid=8f1c2d3e-...-captured-on-landing
&amount=79
&user_ip=203.0.113.7
&user_agent=Mozilla%2F5.0...Testing
- Click one of your live Revcontent ads and confirm the landing-page URL contains
?rc_uuid=.... - Complete a test conversion (purchase, lead, or sign-up) in the same browser session.
- In Signal, open the Event Debugger and confirm the conversion event delivered to Revcontent with a populated
rc_uuidand a non-zeroamount. - Check your Revcontent dashboard conversion report for the test conversion (allow for reporting delay).
Troubleshooting
- No conversions appear in Revcontent. Confirm
rc_uuidwas captured. If the landing-page URL never showsrc_uuid, check that your redirects forward all query parameters to the final landing URL. rc_uuidis empty in the Event Debugger. Datafly.js did not capture the click identifier — verify the visitor arrived via a Revcontent ad and that therc_uuidURL parameter reached the page before navigation.- Conversion delivered (2xx) but not counted. The endpoint returns 2xx even for unmatched data. Confirm the
amountis a non-zero integer and that therc_uuidbelongs to a real Revcontent click within the attribution window. amountrejected. Ensure the source value is a whole-dollar integer, not a decimal or zero.