Hi Team,
We are currently working on an iOS application built using SwiftUI, and we’ve integrated multiple Google Ads within a ScrollView. However, we’ve observed that the app becomes noticeably laggy or hangs while scrolling, particularly in views with embedded ad units.
After profiling, it appears that this issue stems from Google Mobile Ads SDK operations occurring on the main thread, which blocks UI updates and negatively impacts the scrolling performance.
We’ve tried optimizing the task execution using background threads (Task, Task.detached, and Task(priority: .background)), but since the SDK is largely main-thread-bound, the issue persists.
Could you please advise on the following:
Are there best practices for integrating multiple Google Ads in SwiftUI that minimize main-thread usage?
Is there any official guidance or configuration to offload ad processing from the main thread?
Are there any plans for improving SwiftUI performance support in upcoming SDK releases?
Any support or insights to improve the scrolling performance while using Google Ads in a SwiftUI-based app would be greatly appreciated.
Hi Puneeth,
Thank you for contacting the Mobile Ads SDK Support team.
I will check with our team regarding your queries and one of my team members will reach out to you once we have an update on this. Meanwhile, your patience is highly appreciated.
![]() |
Mobile Ads SDK Team |
[2025-05-30 06:01:37Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01rdn3F:ref" (ADR-00309111)
You can provide the following details via reply privately to the author option or below link.
If the file(s) you are looking to share are less than 25mb in total you can attach them to this case on your next reply. If you are having trouble attaching your file to this case or if your file(s) are larger than 25mb. Kindly follow using the steps below:
2. Fill out all fields, and attach your file(s).
3. Please reply back on this thread when you have uploaded your file(s). Please do not share this link.![]() |
Mobile Ads SDK Team |
[2025-06-06 21:28:50Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01rdn3F:ref" (ADR-00309111)
LazyVStack
there are two back-to-back ad requests with the second request having a request_origin
parameter of resize
. However, when using a VStack instead LazyVStack
this does not occur, only one ad request is made.VStack and if any issue occur then reach out to us again.
"Thank you for sharing the sample project with us. We have checked and observed in Charles that multiple ad requests are sent through SDK when using LazyVStack when requesting ads in scroll view.
Might be due to this app hanging too much. Please note that if the LazyVStack resizing itself when the AdView appears on screen is a feature of the LazyVStack or a bug as it is a private Apple API. You can try filing a bug with Apple as well as an attempt to confirm the expected functionality of the LazyVStack. We know VStack does not resize the AdView but there are performance issues with using a LazyVStack in a ScrollView so that's not something we want to recommend.
Since this issue is associated with LazyVStack for which I will raise a request to check if we can provide any documentation for best practices. Additionally, there are no updates for upcoming releases for Swift UI and regarding latest releases updates you can keep an eye on iOS Release history. For updates on upcoming Swift UI releases and the latest release information, please refer to the iOS Release history."![]() |
Mobile Ads SDK Team |
[2025-07-02 19:50:32Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01rdn3F:ref" (ADR-00309111)