tl;dr: Use a checkbox defaulted to checked: X-Send me a giftcard ($30 Free!)
Important Caveat about All Radio Buttons:
About a checkbox that is not defaulted: it must always be invalid for nothing to be checked. If 'nothing checked' is a valid option, and the user accidently checks something, then changes their mind, we have a serious problem. You do the math! (That's can't be the case with this situation, however, it's suprisingly prevalent).
That reality understood, here are the two choices that come into play with a simple yes/no question only (3 or more radio buttons have different nuances).
with a checkbox, you can't tell the difference between "The user didn't read the page and missed the question" and "I didn't want to check it (or uncheck a 'defaulted checked'box)".
2 Yes/No radio buttons with one defaulted is functionally equivalent to a checkbox, defaulted checked or not.
with undefaulted option buttons, you FORCE the user to think about the question and pick what you want. Do this for times when you really care that the user answers it properly, e.g., "this item is out of stock. Place on backorder? O-yes O-no".
OK those are the general rules about the situation. However you seem conflicted as to where you want to push the customer, and you could be getting 'too honest for business' here. You can see how a site operator can work this to their advantage. For example:
" X(pre-checked) - Send my Tons of Spam about this".
They're hoping you'll NOT read it!
For your case, you are pitting making more money against good UI design. UI design always loses when you cut to the chase, sorry!. For example, if the item on your site with the smallest profit margin is a profit margin of $50, what do you have to lose by giving them a free $30? And, who is going to care if they automatically get a free $30?
I take back the tl;dr ... Just give them the giftcard all the time!