Install the FXMacroData redistribution pixel
Commercial Redistribution is fully self-service across websites, Telegram, newsletters, apps, communities, and other customer-facing display channels. Websites use the redistribution pixel for automatic audience measurement. Register non-web surfaces in API Management and report the additional deduplicated audience there. Every surface shares one combined per-user billing total.
Billing meter
$10 per 100 users/month
One block covers up to 100 measured users in a billing period; one block minimum.
Trial
14 days
The trial measures the same audience quantity used at conversion.
Activation
Immediate self-service
No application, quote, manual review, written approval, or lead time.
Install checklist
- 1. Register your first distribution surface when you add the licence, then add any further website and non-web surfaces in API Management.
- 2. Load the generated script on each data page, or once in an SPA layout using exposure mode.
- 3. Add the visible FXMacroData attribution link, or use auto-inject mode.
- 4. Keep the API key on your server, never in browser code.
- 5. For websites, load the site once and confirm API Management marks the pixel active.
- 6. For non-web channels, update the additional deduplicated audience report whenever it changes.
Commercial Redistribution is governed by the Commercial Redistribution Terms, including the server-side key requirement, no marketplace resale, no API mirroring, and request caps that scale by measured-user block.
All display channels are self-service: registering any surface enables access immediately. Websites and web apps then use automatic pixel measurement. Telegram, email newsletters, Discord, Slack, mobile apps, private communities, and other non-web surfaces use the audience report in API Management.
1. Register every website domain
Adding Commercial Redistribution asks for the first distribution surface before checkout, so the licence always starts against a known destination and access is enabled straight away. To add more domains afterwards, open API Management and register every other website domain that will display FXMacroData-powered data. You can add as many domains as you need, and adding a domain does not create a separate licence fee.
Non-web surfaces: register and self-report
In API Management, add each Telegram channel, email newsletter, Discord or Slack community, mobile app, private community, or other display surface. Then enter the additional unique people reached through all non-web surfaces during the billing period, excluding anyone already counted by the website pixel.
Update the report whenever the non-web audience changes. The latest value is added to the automatic website audience, and the combined total determines the USD 10-per-100-user quantity. No bot, pixel, manual review, or approval queue is required for non-web registration.
2. Install the pixel where the data appears
For a conventional site, load the generated script on every page that displays FXMacroData data or derived output. It does not need to load on unrelated account, legal, profile, or marketing pages. For a single-page app, place it once in the global layout and use exposure mode so only the relevant data modules count toward the measured audience.
<script
async
src="https://fxmacrodata.com/static/js/fxmacrodata-pixel.js"
></script>
The script creates an anonymous browser identifier, records data-page and app-route exposure, sends a lightweight heartbeat after 15 seconds, and captures attribution-link clicks. Billing is based on the combined measured non-bot audience across all registered domains. You do not send customer account data to use the meter.
For single-page apps where only some sections display FXMacroData-powered output, add data-fxmd-meter-mode="exposure" to the script and mark the visible sections as metered modules. In exposure mode, loading the app shell verifies the pixel, but billing starts from module exposure events.
3. Put it in the right framework file
The goal is simple: the pixel must load once on every public page where your product can render FXMacroData-powered data. Common placements are:
HTML, Flask, Django, Rails, PHP
Paste the script and attribution into the shared base layout or footer partial used by all pages.
React, Vite, Vue, Svelte
Paste the script into index.html and the attribution into the persistent app shell or footer component. If only some panels use FXMacroData, use exposure mode and mark those panels with data-fxmd-module.
Next.js app router
Add the script in the root app/layout document and the attribution in the root layout body or shared footer.
Webflow, Framer, no-code builders
Add the script to global custom code before </body> and add the attribution link to the global footer.
4. Mark React and SPA exposures
Do not mount and unmount the pixel script for each React tab. Install the pixel once, then tell the meter when a user can actually see a section powered by FXMacroData. Exposure mode does not require separate routes or a full page reload. The pixel deduplicates repeated views client-side and billing is based on unique non-bot users in each billing period, not view count.
<script
async
src="https://fxmacrodata.com/static/js/fxmacrodata-pixel.js"
data-fxmd-meter-mode="exposure"
></script>
Automatic visible-section tracking
<section data-fxmd-metered data-fxmd-module="calendar">
<CalendarPanel />
</section>
Explicit React hook
useEffect(() => {
if (activeSection === "calendar") {
const pixel = window.FXMacroDataPixel || { q: [] };
if (pixel.trackModule) {
pixel.trackModule("calendar");
} else {
pixel.q.push(["trackModule", "calendar"]);
window.FXMacroDataPixel = pixel;
}
}
}, [activeSection]);
Use stable module names such as calendar, cot, macro_non_usd, news, widgets, or reports. The module name is used for diagnostics and auditability; the invoice still uses unique measured users.
5. Show attribution with a linkback
Redistribution requires visible attribution where FXMacroData-powered data appears. Add the generated link in your footer, data table area, chart footer, or dashboard shell, or use this minimum valid link:
<a
data-fxmd-attribution
href="https://fxmacrodata.com/"
target="_blank"
rel="noopener"
>
Data powered by FXMacroData
</a>
The pixel checks whether the attribution element exists, is visible, and links to FXMacroData. API Management may add UTM parameters based on a registered domain for referral reporting, but those parameters are optional for verification. If you prefer not to add a separate link manually, API Management also provides an optional script mode that injects a small attribution link automatically.
6. Verify the installation
After installing the script and attribution, open each registered website in a normal browser. Then return to API Management. The redistribution panel shows the registered surfaces, combined users, pixel status, self-reported non-web audience, and estimated next invoice.
Expected
Pixel status becomes active. The redistribution API key was already enabled when the first surface was registered.
Browser check
The Network tab should show a request to /fxmacrodata-pixel/v1/events.
No secret check
The browser should never contain your FXMacroData API key.
7. Use the API from your server only
The redistribution API key is server-side only. Do not expose the key in browser code, client-side bundles, mobile apps, or public repositories. Your server should request FXMacroData, cache what is needed for your product, and render human-readable user-facing views.
The first USD 10 redistribution billing block includes 100,000 API requests/month, then each additional 100-user billing block adds 5,000 requests/month, capped at 500,000 requests/month on self-serve terms. The fixed operational guards are 300 requests/minute, 5,000 requests/hour, and 20 concurrent requests.
Billing examples
Commercial Redistribution is an add-on to an active Individual or Enterprise subscription. One $10 block covers up to 100 unique external users in a billing period, with one block minimum; each additional 100-user block costs $10/month. The meter combines automatically measured website users with the additional deduplicated non-web audience reported in API Management. Surface count and surface type do not affect the price.
API request allowance starts at 100,000 requests/month, then adds 5,000 requests/month for each additional 100-user billing block until the 500,000 request/month self-serve cap.
| Measured users/billing period | Billing quantity | Monthly charge |
|---|---|---|
| 0 to 100 | 1 x 100-user block | $10 |
| 300 | 3 x 100-user blocks | $30 |
| 500 | 5 x 100-user blocks | $50 |
| 1,000 | 10 x 100-user blocks | $100 |
| 2,100 | 21 x 100-user blocks | $210 |
| 10,000 | 100 x 100-user blocks | $1,000 |