Query parameters do make different URLs. When Facebook is adding parameters, it is creating new URLs. AdSense has no way of knowing whether or not the content is going to be different or not without crawling the URL.
To get around this problem, you can redirect to remove the unwanted query parameters. See this question on StackOverflow: .htaccess - Remove one query parameter from URL.
When you redirect visitors to your canonical URL without the query paramater, the ads will get served from that canonical URL and AdSense will be able to show the ads without extra crawling.