[ tvOS ] Bugs in IMA tvOS SDK, if "IMASettings.autoPlayAdBreaks" is false

41 views
Skip to first unread message

pineapplevine1

unread,
Jan 9, 2023, 9:23:49 PM1/9/23
to Interactive Media Ads SDK
Hello.

We found some bugs in IMA tvOS SDK, they are, if "IMASettings.autoPlayAdBreaks" is false, the advertisement is not played normally.

- Details:

* VMAP ad pre-roll starts playing at the same time as the content.
* When there are multiple ads in a roll, the next ad doesn't play after the first one finishes and not play the content or ad after that.

- Specs:

* Xcode 14.2
* AppleTV HD device (16.1), or AppleTV simulator (16.1 or 14.5)
* IMA tvOS SDK version 4.8.2

- Contents:

* Movie : Content in IMA Sample App "BasicExample" for tvOS
* Ads : IMA Sample Tag

- Project:

googleads-ima-tvos-client-side-main/ObjectiveC/BasicExample

- Steps:

1. Create AVPlayer instance with content URL
2. Create IMAAVPlayerContentPlayhead instance with AVPlayer instance
3. Create IMASettings instance and assign "false" to "IMASettings.autoPlayAdBreaks"
4. Create IMAAdsLoader instance witn IMASettings instance
5. Create IMAAdsRequest instance using "IMAAdsRequest(adTagUrl: , adDisplayContainer: , contentPlayhead: , userContext: )"
6. Create IMAAdsLoader instance with IMAAdsRequest instance
7. If "IMAAdsLoaderDelegate.adsLoader(_ loader: , adsLoadedWith adsLoadedData: )" is called, call "IMAAdsManager.initialize(with: )"
8. If "IMAAdsManagerDelegate.adsManager(_ adsManager: , didReceive event: )" is called and IMAAdEventType is LOADED, call "IMAAdsManager.start()"
9. If "IMAAdsManagerDelegate.adsManagerDidRequestContentPause" is called, call "AVPlayer.pause()"
10. If "IMAAdsManagerDelegate.adsManagerDidRequestContentResume" is called, call "AVPlayer.play()"

We strongly hope that these bugs will be fixed.

Best regards.

IMA SDK

unread,
Jan 10, 2023, 2:46:41 AM1/10/23
to pineapp...@gmail.com, ima...@googlegroups.com

Hello,

 

Michael here from IMA SDK Support team. Thank you for reaching out to us.

 

I noticed that you have mentioned that you used the googleads-ima-tvos-client-side-main/ObjectiveC/BasicExample, is that correct? However, would it be possible for you to share to us the exact project sample implementation you used that was modified from that sample app to fit your use case? Asking this so our team can closely look at the integration when we raise this to our wider team.

Can you also confirm that if the "IMASettings.autoPlayAdBreaks" is set to true, everything works fine on your end?

 

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, you can share your files with me by performing the following steps:

 

1. Navigate to

https://docs.google.com/forms/d/e/1FAIpQLSfkAiXMeYP-fw1W3Z-tT9uwmATEKO5X6S-th0gR2ezdKaaqfg/viewform?usp=pp_url&entry.400550049=IMA+SDK&entry.460850823=5004Q00002hbcFuQAI&entry.80707362=00163002

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.


Regards,

Google Logo
Michael Angelo
IMA SDK Team
 


ref:_00D1U1174p._5004Q2hbcFu:ref

pineapplevine1

unread,
Jan 23, 2023, 12:44:52 AM1/23/23
to Interactive Media Ads SDK

Hello,

> I noticed that you have mentioned that you used the googleads-ima-tvos-client-side-main/ObjectiveC/BasicExample, is that correct?

Yes, but we modified the googleads-ima-tvos-client-side-main/ObjectiveC/BasicExample as follows:

- (void)setupAdsLoader {
    IMASettings *settings = [[IMASettings alloc] init];
    // !!!: IMASettings.autoPlayAdBreaks
    settings.autoPlayAdBreaks = NO;
    self.adsLoader = [[IMAAdsLoader alloc] initWithSettings:settings];
  self.adsLoader.delegate = self;
}

So, we provide you with the modified sample project.

> Can you also confirm that if the "IMASettings.autoPlayAdBreaks" is set to true, everything works fine on your end?

Yes, if the "IMASettings.autoPlayAdBreaks" is set to true(expressed as YES in Objective-C), everything works fine on our end.

Regards.


2023年1月10日火曜日 16:46:41 UTC+9 imasdk:

pineapplevine1

unread,
Jan 23, 2023, 12:48:04 AM1/23/23
to Interactive Media Ads SDK
We have uploaded our the example project.

2023年1月10日火曜日 16:46:41 UTC+9 imasdk:

Hello,

IMA SDK

unread,
Jan 23, 2023, 9:09:48 AM1/23/23
to pineapp...@gmail.com, ima...@googlegroups.com
Hello,

Thank you for getting back to us. I've shared this to the rest of the team for further investigation. I'll update you the soonest I hear back from them.

Regards,
Google Logo
Teejay Wennie
IMA SDK Team
 


ref:_00D1U1174p._5004Q2hbcFu:ref

IMA SDK

unread,
Jan 30, 2023, 11:35:39 AM1/30/23
to ima...@googlegroups.com, pineapp...@gmail.com
Hello,

I believe the error that you are encountering with autoPlayAdBreaks is caused by your current use of [adsManager start]. When autoPlayAdBreaks is set to YES, [adsManager start] should be called on the kIMAAdEvent_LOADED event. However, when autoPlayAdBreaks is set to NO, [adsManager start] should be called or discarded in response to the kIMAAdEvent_AD_BREAK_READY event.

Please let me know if this resolves the issue you reported.

Thanks,

Greg Schoppe
Reply all
Reply to author
Forward
0 new messages