@@ -112,7 +112,11 @@ + (void)initialize:(NSString *)gameId
112112}
113113
114114+ (void )show : (UIViewController *)viewController {
115- [UnityAds show: viewController placementId: [UADSPlacement getDefaultPlacement ]];
115+ if ([UADSPlacement getDefaultPlacement ]) {
116+ [UnityAds show: viewController placementId: [UADSPlacement getDefaultPlacement ]];
117+ } else {
118+ [self handleShowError: @" " unityAdsError: kUnityAdsErrorNotInitialized message: @" Unity Ads default placement is not initialized" ];
119+ }
116120}
117121
118122+ (void )show : (UIViewController *)viewController placementId : (NSString *)placementId {
@@ -135,10 +139,7 @@ + (void)show:(UIViewController *)viewController placementId:(NSString *)placemen
135139
136140 [UADSWebViewMethodInvokeQueue addOperation: operation];
137141 } else {
138- if (!placementId) {
139- NSException *exception = [NSException exceptionWithName: @" IllegalArgumentException" reason: @" PlacementID is nil" userInfo: nil ];
140- @throw exception;
141- } else if (![self isSupported ]) {
142+ if (![self isSupported ]) {
142143 [self handleShowError: placementId unityAdsError: kUnityAdsErrorNotInitialized message: @" Unity Ads is not supported for this device" ];
143144 } else if (![self isInitialized ]) {
144145 [self handleShowError: placementId unityAdsError: kUnityAdsErrorNotInitialized message: @" Unity Ads is not initialized" ];
@@ -203,14 +204,21 @@ + (BOOL)isInitialized {
203204}
204205
205206+ (void )handleShowError : (NSString *)placementId unityAdsError : (UnityAdsError)unityAdsError message : (NSString *)message {
206- NSString *errorMessage = [NSString stringWithFormat: @" Unity Ads show failed: %@ " , message];
207- UADSLogError (@" %@ " , errorMessage);
208- if ([self getDelegate ] && [[self getDelegate ]respondsToSelector:@selector (unityAdsDidError:withMessage: )]) {
209- [[self getDelegate ] unityAdsDidError: unityAdsError withMessage: errorMessage];
210- }
211- if ([self getDelegate ] && [[self getDelegate ]respondsToSelector:@selector (unityAdsDidFinish:withFinishState: )]) {
212- [[self getDelegate ] unityAdsDidFinish: placementId withFinishState: kUnityAdsFinishStateError ];
213- }
207+ dispatch_async (dispatch_get_main_queue (), ^{
208+ NSString *errorMessage = [NSString stringWithFormat: @" Unity Ads show failed: %@ " , message];
209+ UADSLogError (@" %@ " , errorMessage);
210+ if ([self getDelegate ] && [[self getDelegate ]respondsToSelector:@selector (unityAdsDidError:withMessage: )]) {
211+ [[self getDelegate ] unityAdsDidError: unityAdsError withMessage: errorMessage];
212+ }
213+
214+ if ([self getDelegate ] && [[self getDelegate ]respondsToSelector:@selector (unityAdsDidFinish:withFinishState: )]) {
215+ if (placementId) {
216+ [[self getDelegate ] unityAdsDidFinish: placementId withFinishState: kUnityAdsFinishStateError ];
217+ } else {
218+ [[self getDelegate ] unityAdsDidFinish: @" " withFinishState: kUnityAdsFinishStateError ];
219+ }
220+ }
221+ });
214222}
215223
216224@end
0 commit comments