I’ve been trying to think of a better alternative. I don’t use the Buy button, so I’m not overly familiar with how it works.
Maybe none of this is possible, but one thought I have is to let the user create an Ad without purchase. By default the new ad will be marked as Draft or Unpaid and include a Unique ID Special Value in the new ad record. After the new Ad is created, then the user can view the details of it. While viewing the draft ad record, they will now see a purchase button. That purchase button could use the Unique ID as the SKU. The user will make their purchase for the ad and once the purchase is made a record will be added to the app:Sales sheet. You can use a vLookup in the Ad sheet to cross reference the Ad Unique ID to the Sales SKU ID and flip the status to Approved or Paid.
By using a Draft/Unpaid and Approved/Paid status, you can set a filter or condition to control if the ad is displayed in your app.