Coming in Prosper202 1.9.80 · Release overview

Everything
in 1.9.80.

Native ChatGPT Ads tracking leads the release. Around it: conversions sent from your server to ChatGPT Ads, Google Ads and GA4, money-loss alerts, the spend ledger, postback security, and much of what paid 1.9.56 had, brought back. Here are the 125 changes users will notice so far, by area. 1.9.80 is in final testing, so the list may still grow before it ships.

Six things to know first.

The upgrading guide has every step. Back up your database first: there is no downgrade.

API keys

Keys are shown once

API keys are now stored as a hash. Every key keeps working, but Reveal and Copy are gone, and a key is accepted only exactly as it was made, letter case included. Going back to an older version needs your pre-upgrade backup or new keys.

Postbacks

Postback security starts off

Existing accounts accept postbacks as before. To require the new token, copy your postback and pixel URLs again, give them to your networks, then switch it on under Account › API Integrations.

Alerts

Money-loss alerts are on

For every account, including existing ones. A webhook subscribed to every event now also receives the alert events, so a receiver should ignore event names it doesn’t know.

1-click upgrade

Only signed releases install

The 1-click upgrade installs only releases signed by Tracking202, and says before you press the button when it can’t run on your server.

Paid 1.9.56

Coming from paid 1.9.56?

Your landing page code, pixels, postbacks, PurLinks and redirector rules work again without being redone, and the upgrade page links your upgrade notes.

Developers

The full changelog

Every API route, CLI command and schema change is in the release notes once 1.9.80 is released.

ChatGPT Ads

Native tracking for ChatGPT Ads, from the traffic source to the Conversions API.

  • New
    ChatGPT Ads destination: send your conversions to OpenAI’s Conversions API from your server (Setup › Destinations).
  • Changed
    ChatGPT Ads spend goes only to clicks from your ChatGPT Ads traffic sources, so another source’s clicks with the same ad id keep their own cost. If you set up a ChatGPT Ads source yourself, mark it as ChatGPT Ads on its edit form in Traffic Sources.
  • New
    Clicks from ChatGPT ads keep OpenAI’s click id (oppref): use [[oppref]] in your URLs, and a postback that sends it back finds its click.
  • New
    Add ChatGPT Ads on Traffic Sources, and a ChatGPT Ads tracking template on Get Links.
  • New
    Connect a ChatGPT Ads account with its Advertiser API key, and let Prosper202 set up the pixel, Conversions API key and event settings (Setup › Destinations).

Conversion destinations

Send conversions from your server to ChatGPT Ads, Google Ads and GA4.

  • New
    Destinations send your conversions to Google Analytics 4 from your own server, with a test and a delivery log (Setup › Destinations).
  • New
    Destinations upload your conversions to Google Ads from your own server, with your own developer token (Setup › Destinations).
  • Fixed
    A database hiccup no longer shows a destination’s credentials as unreadable.
  • Fixed
    p202 destination commands refuse flags that do not apply instead of ignoring them.
  • New
    Edit a destination on Setup › Destinations: settings, campaigns, parameters, per-campaign conversion actions and credentials (a blank secret keeps the stored one).
  • New
    Destinations show what failed and why, with the full log, and failed or withheld conversions can be sent again after you fix the cause.
  • New
    Send a new destination the conversions recorded before it existed (the last 3 days for GA4, 90 for Google Ads).
  • Fixed
    Destinations say which privacy setting is in force and when it holds back EEA/UK visitors whatever consent is stated.
  • New
    If Google Ads is still fetching your old paid 1.9.56 conversion feed, Setup › Offline Conversions shows it and moves it over with one button.
  • New
    Google Ads destinations: pick the account and conversion action from your Google Ads account instead of pasting IDs.

Money-loss alerts and logs

Hear when a campaign stops making money, and see every request that reached you.

  • New
    Conversion Logs is back: every conversion on your account with its click and conversion times, IP, type, transaction ID, payout and user agent, filtered by date, campaign, subid, type and deleted state.
  • New
    Setup › Inbound Log shows every postback, pixel and payment notification received and why one was refused.
  • New
    Money-loss alerts, on by default, by email, Slack or webhook when a steady campaign stops converting while it buys clicks, or passes a daily cost cap with no conversion. Turn them off under Personal settings.
  • New
    Money-loss alerts also tell you when far more of your postbacks and pixels are refused in an hour than usual, with the main reasons. The alert pauses if the inbound log is too full to retain its 24-hour baseline.
  • New
    Money-loss alerts are listed on Home and in your alert settings, with how each was sent or why it was not, so an email that never arrives cannot hide one.
  • New
    "Send a test alert" checks that your money-loss alerts reach you, and says what each channel did.
  • Changed
    Each money-loss alert links to the page that shows the problem.
  • Changed
    Money-loss alerts can be kept in the app only, with every channel off.
  • Changed
    The Attribution page shows why something is failing and has a "Try again now" button.
  • New
    Before you require the postback token, Account › API Integrations shows which postbacks and pixels still arrive without it, so turning it on refuses nobody by surprise.
  • New
    The Inbound Log has search, says how to fix each refusal, and can record a refused postback or pixel with one click.
  • New
    A warning on Home and the Overview when conversions are not reaching your traffic sources because the cron job is not running. Set up the cron job or turn on AutoCron so they are sent.
  • Changed
    Conversion Logs rows open their click and link their inbound requests, and the filtered list downloads as CSV.

Postbacks and pixels

Safer, faster postbacks that find their click.

  • New
    A global postback whose SubID was not filled in records its sale by the ad click id (gclid, msclkid, fbclid and others) the network sends back, on your click that carries it. Name your network’s own parameter under Personal settings › Advanced.
  • Fixed
    Conversion amounts larger than 999,999.99999 are refused with a clear error instead of being silently stored as 999,999.99999.
  • Fixed
    The global postback records sales sent in a form POST body again, as paid 1.9.56 did.
  • Changed
    From paid 1.9.56: on a form POST to the global postback, a subid or sid in the URL is used instead of the body’s.
  • Fixed
    Sales from the per-campaign postback and from ClickBank, JVZoo, PayKickstart, Shopify and Zaxaa notifications now notify your traffic source’s server postback.
  • Changed
    Postbacks and pixels answer right away and traffic-source postbacks are sent in the background, so a slow outside service no longer slows down your pages or postbacks.
  • New
    Postbacks and pixels can require your account’s postback token, or only signed postbacks, so a guessed click id no longer records or reverses a conversion. Choose under Account › API Integrations once your networks have the new URLs.

Cost and currency

Billed spend as cost, and conversions in the currency they were recorded in.

  • New
    A spend ledger keeps what each ad platform billed per ad per hour, for the reports to use as cost.
  • Changed
    Reports use the spend an ad platform reported for the clicks it matches, and say how far that spend data reaches.
  • Changed
    Overview, Group Overview, Breakdown and the Analyze pages show the same ad platform spend as cost, with a note above the figures.
  • New
    Each conversion keeps the currency it was recorded in. Changing your account’s currency no longer relabels earlier conversions, and reports say when a period holds more than one currency. If you changed your account’s currency before this version, say when on Personal settings and your earlier conversions take the currency they were in.
  • New
    Postback and pixel amounts on a campaign paid in another currency are converted into your account’s currency at a daily exchange rate, and keep the amount that was sent. After the upgrade, Personal settings lists those campaigns so you can switch them to your account’s currency in one step if their networks report in it.
  • Fixed
    Update Subids reads payout, transaction id and time on each line again, with a default payout and time zone.
  • Fixed
    Campaigns can be paid in another currency again; the payout is converted to your account currency when you save.
  • Fixed
    Changing your account currency now converts campaign payouts the right way round.

Clicks, fraud and landing pages

Cleaner clicks, and landing pages that check their own code.

  • Fixed
    Google Ads tracking templates from paid 1.9.56 installs record clicks again.
  • New
    Get Links gives landing-page links a Google Ads final URL and tracking template.
  • Fixed
    IPQualityScore now scores your clicks a few minutes after they arrive and filters fraudulent ones from your reports. Visitors from the EU, EEA, UK and Switzerland are never sent.
  • Fixed
    Editing a Get Links link keeps its tracker id, so API and CLI clients keep finding it.
  • Fixed
    The API refuses a landing page URL without http:// or https://, as the Landing Pages page does.
  • New
    Setup > Campaigns suggests the [[subid]] parameter for 23 affiliate networks’ links again (the paid Link Assistant).
  • New
    Get LP Code can check that your landing page carries its code.
  • Fixed
    Landing page dynamic content fills form fields and 1.9.56’s segment names again, and the dcs script API is back.
  • Fixed
    Landing pages that call dcs.updateDataObj() update the recorded click’s c1-c4 and keyword again.
  • Fixed
    Landing pages from paid 1.9.56 that keep the original SubID (t202UseSubidOrig) do so again.
  • Fixed
    PurLinks with their own deep link keep it while the SubID is being prepared.
  • Changed
    PurLinks refresh after the Back button without recording another pageview.
  • Fixed
    PurLink clicks from paid 1.9.56 that had not converted yet still convert after upgrading.
  • Fixed
    Landing pages from paid 1.9.56 that set t202Settings values or t202UrlVars have them applied again.
  • Fixed
    T202SubidOrig, t202SourceId and [[sourceid]] in PurLinks are filled again on landing pages.
  • Fixed
    PurLinks on cloaked simple landing pages keep their own deep link.
  • Fixed
    Redirector links keep the gclid, UTM values and tracking variables, as direct links do.
  • New
    PurLinks are back: landing page links go straight to the offer, and the click-out is still recorded.
  • New
    Deferred pixels fire your traffic source’s pixels on the landing page when a PurLink click converts.
  • New
    Visitors shows why a click was filtered, and a click IPQualityScore filtered has a Not fraud button that counts it again.
  • Changed
    A landing page URL typed without https:// is completed for you instead of refused.
  • New
    Landing Pages shows whether each page carries its tracking code, and checks it for you.
  • Changed
    Update Subids accepts payouts pasted with a currency sign, such as $12.50.

Redirectors

Rules that match, warn and save in one piece.

  • Fixed
    Redirector rules on c1-c4, UTM values, keyword and referer work on offer links.
  • Fixed
    Saving a redirector’s rules on Setup › Redirectors is all or nothing, and removing a rule no longer leaves its destinations behind.
  • Changed
    A redirector holding a split-test weight over 100 must have it corrected before Setup › Redirectors saves it; the error says which rule.
  • Fixed
    Redirector rules on EU, fraud score, IP range, visitor, c1-c4, keyword, referer and utm values match again after upgrading from paid 1.9.56.
  • Fixed
    A redirector rule saved as "US" or "Mobile" now matches its visitors, and typing a country’s code or name saves it in the right form instead of refusing the save.
  • New
    Redirector rules suggest the UTM, c1-c4, keyword and referer values your own clicks carried as you type.
  • New
    Setup › Redirectors warns when a rule can never match, such as a fraud rule with no IPQualityScore key or a rule placed after one that takes every visitor.
  • Fixed
    A redirector’s "desktop" device rule now matches Macs, and the ISP rule type follows your own account’s MaxMind ISP setting.

Payment platforms

ClickBank, Shopify, JVZoo, PayKickstart and Zaxaa.

  • Fixed
    Zaxaa Payment Notifications (ZPN) now update conversions; the ZPN URL on the integrations page used to answer 404.
  • Fixed
    JVZoo notifications at the paid 1.9.56 JVZIPN URL record sales again, as the affiliate’s.
  • Fixed
    A JVZoo vendor still on the 1.9.56 URL can choose "vendor" for it on the API integrations page, and a vendor’s sale there is no longer lost silently.
  • Fixed
    A second PayKickstart refund of the same amount is no longer dropped as a duplicate; it is refused and shown.
  • Fixed
    ClickBank refunds of sales recorded before the upgrade are taken back again.
  • Fixed
    ClickBank sales record again on accounts that count in a currency other than USD.
  • Fixed
    Shopify order webhooks are recorded again, verified with the webhook secret you store under API integrations.
  • Fixed
    A sale in another currency than your account’s is held, the integration’s card tells you which setting to change, and one button records the held sales once you have.
  • Fixed
    A JVZoo vendor still on the 1.9.56 URL has sales with no affiliate recorded, and the JVZoo card offers one button to read that URL as a vendor’s.
  • New
    Shopify refunds that are waiting or were refused are listed under Setup › Inbound Log, where each can be recorded or closed.
  • New
    The Shopify integration gives a copy-ready theme snippet and shows whether your store’s webhooks are arriving.

Reports and attribution

Publishers, custom variables and attribution that keep going.

  • Fixed
    A model change that cannot be applied no longer holds up attribution for the rest of the account.
  • Fixed
    Attribution no longer stops for a visitor linked to a very large number of visitor ids.
  • Fixed
    Charts no longer go blank on servers that send a strict Referrer-Policy header.
  • Fixed
    Analyze › Custom Variables never shows another account’s variable names.
  • Fixed
    Publisher links (t202pubid) from paid 1.9.56 record their publisher again, for users with the Publisher role.
  • New
    Analyze > Publishers shows the clicks, leads and revenue of each publisher’s links, by link and campaign, with a download. Reports in the API and CLI can break down and filter by publisher.
  • New
    Every report page can be narrowed to one publisher’s clicks with the new Publisher filter.
  • New
    Accounts on another user’s traffic source get their own copy automatically, and record custom variables again.
  • Changed
    Settings says when custom variable values are not being recorded because a traffic source is in another user’s account.

API keys, privacy and security

Keys you can tell apart, signed upgrades, and fewer third parties.

  • New
    Account › API keys shows the watchers each AI app keeps running with its key, with a Stop button; revoking the key stops them too.
  • Fixed
    Product analytics are no longer occasionally sent twice when a page and the hourly cron deliver at the same moment.
  • Changed
    API keys are stored as a hash and shown once, when made; Reveal and Copy are gone, and every key keeps working.
  • Fixed
    An API key is accepted only exactly as made, letter case included.
  • Changed
    After the 1.9.80 upgrade, going back to an older version needs the pre-upgrade database backup or new API keys.
  • New
    Choose separately whether Prosper202 receives product analytics and whether it emails you offers and tips (Personal Settings › Data & communication).
  • Changed
    Signed-in pages no longer load a third-party script.
  • Changed
    Adding a network or traffic source no longer reports its name to Tracking202, and a slow or failed report can no longer hold up or clutter the save.
  • Changed
    The 1-click upgrade installs only releases signed by Tracking202, and changes nothing when a download is not.
  • Fixed
    The Slack integration no longer shows a command webhook URL that never worked.
  • Fixed
    Slack notices go to your own account’s webhook, not the install owner’s.
  • New
    Each API key shows when it was last used and by what, so you can tell which integration holds it.
  • New
    Replace an API key from My Account: the new key is shown once and the old one keeps working for 24 hours.
  • Changed
    p202 user apikey rotate gives the old key 24 hours, as Replace does; apikey delete ends a key at once.
  • New
    Name an API key when you make it, so you can tell your keys apart.

AI assistants and the command line

More for Claude, ChatGPT and p202 to work with.

  • New
    The local MCP server (p202 mcp) loads more tools on request, starting with conversion destinations’ status, delivery log and test fire.
  • Fixed
    An AI app connected through the hosted MCP server is told to check before retrying when a tool made its change and a later read was refused, instead of being told nothing was sent.

Upgrading

A clearer upgrade, from any version.

  • Fixed
    After restoring the database from a backup, the API no longer answers retried creates as done or offers staged changes made after the backup.
  • Fixed
    The Bot202 Facebook Pixel Assistant from paid 1.9.56 works again: landing page settings, Meta Pixel events and the conversion Purchase.
  • Fixed
    Old API v1 setup addresses (campaigns, trackers, landing pages and more) answer again after upgrading from paid 1.9.56.
  • Fixed
    The old paid Google Ads feed address now says where to make its replacement instead of failing silently.
  • Fixed
    Landing-page code from paid 1.9.56 installs tracks again without being re-pasted.
  • Fixed
    Pixels and postbacks from paid 1.9.56 installs record repeat sales again when they send an order number (t202txid).
  • Fixed
    Offline conversion files no longer stall on MariaDB 11.
  • Changed
    From paid 1.9.56: to count repeat sales on one click, send the order number in t202txid.
  • Changed
    From paid 1.9.56: the same order number sent twice for one click counts once; t202dedupe is no longer read.
  • Fixed
    Upgrading from paid 1.9.56 no longer leaves the password column too short for new passwords.
  • Changed
    A failed upgrade shows what failed, what to do and a report to copy to support, on the page.
  • Changed
    The 1-Click Upgrade says before you press the button when it cannot run on this server, and why.
  • New
    Installs upgrading from paid 1.9.56 get a link to their upgrade notes on the upgrade page.
  • Changed
    After a database restore, Settings says what was set aside and where; it is removed after 30 days.

Be ready for 1.9.80.

New to Prosper202? Get the self-hosted download now. Already running it? When 1.9.80 ships, upgrade from your account’s download or with the 1-click upgrade.