自前のサイトにて、adsenseの広告生成を検証してみたのですが、
asyncついていようがいまいが高さ取得はかなり難しいかと思います・・・。
なぜなら、scriptによる最終生成が、二、三重にiframeをかませていますので、
クライアントサイドからでは(javascript)クロスオリジンが引っかかり、おそらく、画像ないし要素の直接取得は不可能だからです。
(要素取得できないと、高さを正確に取得とか無理です)
なので、一つ、方法として、CSSを使った下記の方法でなんとかやってみる、ってのをお試しください。
まず、最終生成された広告を表示している状態で、キャプチャを撮ります。
そして、その画像を画像編集ソフトか何かで、
全体の画面の横幅に対して、その広告の高さが、何%かを確認します。
例えばiPhone 8や7の場合、横幅の実ピクセル数が、750pxなので、
もし広告の高さが、150pxだったとしたら、
150 / 750 * 100で、約、20%となります。
それで、
CSSに下記のように指定しましょう。
css
1.affiliateBlock {
2 height: 20vw;
3}
実際に検証してみていただければわかるかと思いますが、
端末別で大きさは変動はもちろんしますが、
画面の横幅に対して、何%の大きさかの%比率自体は、おそらく全て同比率になるはずです。
(そのように自動的になるよう、設計されているはずです)
そして、なぜ高さに対して、画面横幅で比率とるのか、の理由ですが、
スマホ端末は、縦長であり、かつ、Webページは基本縦に伸びていく性質があるため、
横幅で合わせると、安定して合わせやすいからです。
(Webページの量や、端末の縦幅変動に対応されやすい)
また、本回答の方法は対処療法なので、もしかしたら、他に方法あるかもしれません。
例えば、Google Adsenseに、公式で用意したコールバック関数があり、
その関数の呼び出しによって、高さを取得できる、とかです。
(私がパッと調べた限りでは見つかりませんでした)
現代の世のほとんどのアフィリエイトにおいて、
広告生成後の情報を取得は、基本的に、広告主のASPによって、セキュリティ上で制限が設けられておりますので、
無理しゃりかもしくは公式のコールバックを使うしかないでしょう。