> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# App Open 广告

> 在 iOS 应用中集成 CloudX App Open 广告

App Open 广告是全屏广告位，适用于应用回到前台等场景，例如用户将应用切到后台后再次返回。

#### 支持的网络

App Open 需求由以下竞价网络提供：

| 网络        | 适配器                                     |
| --------- | --------------------------------------- |
| Mintegral | [Mintegral](/zh/ios/adapters/mintegral) |
| Pangle    | [Pangle](/zh/ios/adapters/pangle)       |
| Vungle    | [Vungle](/zh/ios/adapters/vungle)       |

[Google Mobile Ads 瀑布流适配器](/zh/ios/adapters/googlewaterfall) 同样支持 App Open 广告位，用于 AdMob 瀑布流需求。

<CodeGroup>
  ```objc Objective-C theme={null}
  @interface YourViewController () <CLXAppOpenDelegate, CLXAdRevenueDelegate>
  @property (nonatomic, strong) CLXAppOpen *appOpenAd;
  @end

  @implementation YourViewController

  - (void)createAppOpenAd {
      self.appOpenAd = [[CloudXCore shared] createAppOpenWithAdUnitId:@"your-app-open-ad-unit-id"];
      self.appOpenAd.delegate = self;
      self.appOpenAd.revenueDelegate = self;
      [self.appOpenAd load];
  }

  - (void)showAppOpenAd {
      if (self.appOpenAd.isReady) {
          [self.appOpenAd showFromViewController:self];
      } else {
          NSLog(@"App Open ad not ready");
      }
  }

  - (void)dealloc {
      [self.appOpenAd destroy];
  }

  #pragma mark - CLXAppOpenDelegate

  - (void)didLoadAd:(CLXAd *)ad {
      NSLog(@"App Open ad loaded from %@", ad.networkName);
  }

  - (void)didFailToLoadAd:(NSString *)adUnitId error:(CLXError *)error {
      NSLog(@"App Open ad failed to load: %@", error.localizedDescription);
  }

  - (void)didDisplayAd:(CLXAd *)ad {
      NSLog(@"App Open ad displayed");
  }

  - (void)didFailToDisplayAd:(CLXAd *)ad error:(CLXError *)error {
      NSLog(@"App Open ad failed to display: %@", error.localizedDescription);
      [self.appOpenAd load];
  }

  - (void)didHideAd:(CLXAd *)ad {
      NSLog(@"App Open ad hidden");
      [self.appOpenAd load]; // Reload for next use
  }

  - (void)didClickAd:(CLXAd *)ad {
      NSLog(@"App Open ad clicked");
  }

  #pragma mark - CLXAdRevenueDelegate

  - (void)didPayRevenueForAd:(CLXAd *)ad {
      NSLog(@"App Open revenue: %@ from %@", ad.revenue, ad.networkName);
  }

  @end
  ```

  ```swift Swift theme={null}
  class YourViewController: UIViewController, CLXAppOpenDelegate, CLXAdRevenueDelegate {
      private var appOpenAd: CLXAppOpen?

      func createAppOpenAd() {
          appOpenAd = CloudXCore.shared.createAppOpen(adUnitId: "your-app-open-ad-unit-id")
          appOpenAd?.delegate = self
          appOpenAd?.revenueDelegate = self
          appOpenAd?.load()
      }

      func showAppOpenAd() {
          if appOpenAd?.isReady == true {
              appOpenAd?.show(from: self)
          } else {
              print("App Open ad not ready")
          }
      }

      deinit {
          appOpenAd?.destroy()
      }

      // MARK: - CLXAppOpenDelegate

      func didLoad(_ ad: CLXAd) {
          print("App Open ad loaded from \(ad.networkName ?? "unknown")")
      }

      func didFailToLoadAd(_ adUnitId: String, error: CLXError) {
          print("App Open ad failed to load: \(error.localizedDescription)")
      }

      func didDisplay(_ ad: CLXAd) {
          print("App Open ad displayed")
      }

      func didFailToDisplay(_ ad: CLXAd, error: CLXError) {
          print("App Open ad failed to display: \(error.localizedDescription)")
          appOpenAd?.load()
      }

      func didHide(_ ad: CLXAd) {
          print("App Open ad hidden")
          appOpenAd?.load() // Reload for next use
      }

      func didClick(_ ad: CLXAd) {
          print("App Open ad clicked")
      }

      // MARK: - CLXAdRevenueDelegate

      func didPayRevenue(for ad: CLXAd) {
          print("App Open revenue: \(ad.revenue ?? 0) from \(ad.networkName ?? "unknown")")
      }
  }
  ```
</CodeGroup>

请谨慎使用 App Open 广告，仅在自然的应用打开或恢复前台的时机展示。当用户正在与应用内容交互时，请避免展示。
