Yeah, most of the newer APIs let you check a flag, the older ones that didn't have permission built into them from the beginning (see: Address Book) need some behavior so old apps don't break though, so returning a "zero" ID seems reasonable.
AFAIK incentivizing permissions is allowed, so yeah, "50 coins for your location" is permissible. Though keep in mind that Apple will reject apps for requesting permissions without any functional need - so if your app isn't actually using the location data (and collecting it purely for ad targeting) it's likely your app will be rejected from the store.
You will have to invent some veneer of an excuse for collecting this user data, though how thin your excuse can be varies depending on Apple's mood.