Unfortunately there’s no solution. All we as Extension developers will see is that user x on channel y made a transaction, but it’s impossible to know what specific instance completed the transaction if the user has multiple open.
It’s been an issue since monetization in Extensions went live, and the solution I’ve always suggested was to allow Extension devs to be able to optionally pass a state param to useBits as well as the SKU that would then be returned in the receipt. If that was ever to be implemented you could randomly generate a string to use as state, then compare it to the state in the receipt and if it doesn’t match it must be from a different instance. I’ve not heard of any movement on this issue though so for now it’s just a case of mitigating it as much as possible (such as flipping a boolean variable when useBits is used, which will at least let you rule out any instances that haven’t ran useBits)