As I see it the dominant techniques for ad placement are the following:
Shortcodes
Upside: Offers precise / granular positioning in content.
Downside: Repetitive (manual) labor required.
Automatic insertion by paragraph or character (word) count (either by plugin or hard coded function)
Upside: Reduction of manual labor (typing/clicking for insert shortcode.
Downside" Placement, though controlled by paragraph or word count, remains a bit random. Might be jarring, disrupt readers flow, etc.
Mid-side: A variety of plugins are available OR you can add a function to you theme file and not have to deal with the baggage that some (most?) plugins that offer this functionality carry with them.
Placement "by hooks" or widget placement (Example: after_content, etc)
Upside: Visually and logical appeal, as in "You're done reading this article NOW consider this (resource, purchase, etc)
Downside: Consistent placement may lead to a form of "banner blindness" that in-content placement may avoid or reduce.
Have your played with insertion by paragraph <p> or character count? What was / is your experience?
If you employ a "count <p> or character" technique do you hardcode the function (to shun the plugin" or do you rely on a free / paid plugin? What's your experience?
Have you played with shortcodes, inserted manually? What was / is your experience?
Do you handcode your own shortcodes or do you rely on a plugin? Why one over the other?
Am I overlooking other approaches to ad insertion?
From what I've read and from my own experience, a limited number (=one) in-content-ad and one after-content-ad is least . . . offensive.
In content ads can be a bit distracting or jarring or off putting so, AFAIC, some degree of strategic (vs. automatic) placement makes sense . . but that thoughtful effort also make for a bit more work.
However, as my friend martinibuster so often writes ~"It's (all) about UX".