To pass a custom transaction ID in your tracking link, append the following parameter: ad_id You or your publisher needs to insert an externally generated transaction ID value in this parameter before the click registers in HasOffers. Maybe you have the ad for your book in your sidebar, in your footer bar, and after your post content. Let us know what you think of Bitly.com and other similar sites.
Your custom title will also appear at the end of the URL parameter, so you can see the stats for each individual PDF. By tracking those links, you can find which one is working the best. We can also store your Google Analytics ID to track visits to your campaign pages and hosted campaign archive, so you can see traffic to these pages in your Google Analytics account. See if you are using Classic Analytics (ga.js) or Universal Analytics (analytics.js).