英語で読む

次の方法で共有


iOS でネイティブFacebook需要を得る

このドキュメントでは、Facebookの Audience Network SDK に表示するネイティブ広告アセットを取得するプロセスについて説明します。

注意

この SDK には Xcode バージョン 15.0 以上が必要であり、アプリは iOS バージョン 12.0 以降をターゲットにする必要があります。

適切な SDK がインストールされていることを確認する

Xandr SDK と Xandr-FAN-Demand パッケージをインストールする必要があります。 CocoaPods を使用します

CocoaPods がインストールされたら。

  1. ターミナルまたは任意のコマンド ライン エディターを使用し、プロジェクト ディレクトリに移動し、ポッドファイルを作成します。

    pod init
    
  2. テキスト エディターを使用して、新しく作成した podfile を開きます。 プラットフォームを 12.0 に設定し (AppNexus は常に現在のリリースから 2 つの iOS リリースをサポートしています)、ポッド 'AppNexusSDX' をターゲットに追加します。

    # iOS: Podfile config to include our SDK
    platform :ios, '12.0'
    
    project 'SampleApp'
    
    target 'SampleApp' do
    
      pod 'AppNexusSDK'
      pod 'AppNexusSDK/FacebookCSRAdapter'
    
    end 
    
  3. 変更を保存し、ターミナルに戻り、次のように入力します。

    pod install
    
  4. Cocoapods は AppNexus SDK と FacebookCRSAdapter の両方をダウンロードし、プロジェクト ディレクトリにワークスペースも作成します。 プロジェクトが現在開いている場合は、プロジェクトを閉じてワークスペースを開きます。

Facebookの Audience Network SDK を初期化する

アプリのライフサイクルの早い段階で、以下のコード ブロックに示すように、Facebookの Audience Network SDK (FBAudienceNetworkAds) を初期化します。

[FBAudienceNetworkAds 
  initializeWithSettings:fbAdSettingObject  
  completionHandler:^(FBAdInitResults *results) {
         if (results.success) {
             [ANFBSettings setFBAudienceNetworkInitialize:YES];
             complete(nil);
         } else {
             [ANFBSettings setFBAudienceNetworkInitialize:NO];
             complete(error); 
        }
     }];

FBAudienceNetworkAdssetFBAudienceNetworkInitialize初期化が成功すると、 が にYES設定されます。それ以外の場合は としてNO設定されます。 値がとしてYES設定されている場合、つまり Audience Network SDK が初期化されている場合、 getBidderToken Audience Network SDK のメソッドは、さらに進むには、Facebook Bidder トークンを返します。 としてNOgetBidderToken設定された値の場合、メソッドは nil を返します。

iOS 14 以降、Publisher App では、Audience Network SDK を使用するための iOS ポリシーの義務を果たすために、新しい API setAdvertiserTrackingEnabled を設定する必要があります。 FacebookAd SDK 6.0.0 で iOS 14 以降でのみ機能する FBAdSettings に、新しい API setAdvertiserTrackingEnabled が追加されました。

// Set the flag as true if a user provides consent
 [FBAdSettings setAdvertiserTrackingEnabled:YES];
 // Set the flag as false if a user disallows tracking
 [FBAdSettings setAdvertiserTrackingEnabled:NO];

ネイティブ広告リクエストを作成して広告を読み込む

注意

応答が返されるまで、要求への参照を保持します。

self.nativeAdRequest= [[ANNativeAdRequest alloc] init];
self.nativeAdRequest.placementId = @"18793423";
self.nativeAdRequest.delegate = self;
[self.nativeAdRequest loadAd];

FBNativeBanner の応答を処理する

FBNativeBanner のレイアウトを作成します。 Facebookによって提供される例に従うことができます。

成功した応答が返された場合:

- (void)adRequest:(ANNativeAdRequest *)request didReceiveResponse:(ANNativeAdResponse *)response {
    // (code which loads the view)
    self.nativeAdResponse = response;
    self.adTitleLabel.text = self.nativeAdResponse.title;
    self.bodyLabel.text = self.nativeAdResponse.body;
    self.adSponsoredLabel.text = self.nativeAdResponse.sponsoredBy;
 
 
     if(self.nativeAdResponse.customElements[kANNativeCSRObject] && self.nativeAdResponse.customElements[kANNativeCSRObject] isKindOfClass:[ANAdAdapterCSRNativeBannerFacebook class]) {
        ANAdAdapterCSRNativeBannerFacebook *fbNativeBanner = (ANAdAdapterCSRNativeBannerFacebook *)response.customElements[kANNativeCSRObject];
        // CSR registerViewForTracking (see example below)
    }else {
        //  Non CSR registerViewForTracking
            //  See native ad examples here: show-native-ads-on-ios.md
    }
}

応答エラーの場合:

- (void)adRequest:(ANNativeAdRequest *)request didFailToLoadWithError:(NSError *)error withAdResponseInfo:(ANAdResponseInfo *)adResponseInfo{
    NSLog(@"didFailToLoadWithError");
}

追跡用にビューを登録する

ANAdAdapterCSRNativeBannerFacebook オブジェクトの registerViewForTracking メソッドを呼び出します。

ClickableView を使用した MediaView の場合

/*registerViewForTracking using MediaView with Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                 withRootViewController:self
                          iconView:self.adIconView
                         clickableViews:@[self.adUIView]];          

ClickableView を使用しない MediaView の場合

/*registerViewForTracking using MediaView without Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                 withRootViewController:self
                          iconView:self.adIconView];          

ClickableView を使用した ImageView の場合 (MediaView なし)

/* registerViewForTracking using Image View with Click Tracker */
  [fbNativeBanner registerViewForTracking:self.adUIView
                   withRootViewController:self
                            iconImageView:self.imageView
                           clickableViews:@[self.adUIView]];     

ClickableView がない ImageView の場合 (MediaView なし)

/*registerViewForTracking using Image View without Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                     withRootViewController:self
                              iconImageView:self.imageView];

ビューの登録を解除する

広告の表示が完了したら、ビューの登録を解除する必要があります。

self.nativeAdResponse = nil; // It will handle ad unregister views