Only answer points a) and b).
You can use IDFA to track user clicks for updates, actual conversions, and to identify individual users between the paid and light versions of your application.
Since all activities are performed inside the application, you can simply send an HTTP request to your server using the IDFA hash, or you can even use IDFA directly, since it is confidential to track all users who click the update button.
In your paid application inside applicationdidfinishlaunching send an HTTP request to your server with an IDFA / IDFA hash and set NSUserDefault with IDFA (or any other line) as the key and IDFA value as in your application to note that you have already sent IDFA to your server. Therefore, when the application is (closed and) launched, you will need to check the value against the key ("IDFA" or that you installed it), and if the value matches your IDFA, you do not need to send a server message.
If the user resets their IDFA, you can send a message to your server with the old IDFA, as well as with the new IDFA. This will help you better track the user.
Hope this helps.
Also, could you talk about point c)?
source share