1

HeyZapネイティブ広告仲介をUICollectionViewに統合しようとしています。 私はIBでビルドされたセルを使用していますが、nativeAd.wrapperViewをセル内の独自のwrapperViewに割り当てようとしているときは、タップやジェスチャーに応答しません。私はプログラム的にそれを行う方法を見つけることができますHeyZapドキュメント(https://developers.heyzap.com/docs/ios_sdk_native_mediation#step-3-show-native-ads)からUICollectionViewインテグレーションのHeyZapネイティブ広告

cell.hzNativeAd = ...; //Here I assign HZMediatedNativeAd to my cell property 
cell.hzNativeAd.presentingViewController = self; 
cell.hzNativeAd.shouldShowFacebookAdChoicesView = NO; 

//Saving frame, because when I assign HeyZap wrapperView to my UIView frame is 0 
CGRect wrapperViewFrame = cell.wrapperView.frame; 
cell.wrapperView = cell.hzNativeAd.wrapperView; 
cell.wrapperView.frame = wrapperViewFrame; 

/*Assigning all labels and images 
... 
... 
... 
*/ 

//Registering Views with HZMediatedNativeAdViewRegisterer 
[cell.hzNativeAd registerViews:^(id<HZMediatedNativeAdViewRegisterer>registerer) { 
    [registerer registerTitleView:cell.titleLabel tappable:YES]; 
    [registerer registerBodyView:cell.descriptionLabel tappable:YES]; 
    [registerer registerCallToActionView:cell.actionButton]; 
    [registerer registerIconView:cell.imageView tappable:YES]; 
    [registerer registerCoverImageView:cell.coverImageView tappable:YES]; 

: はここに私のコードです。しかし、そうすることで、iPadでテストすると本当に悪い結果になる。私はビューを作成しています。制約を追加してからこのビューを登録し、再利用の準備をするときにそれらをすべて削除してください。時間がかかり、iPad上で多くの遅れがあります。 HeyZapサポートは返信しません。

多分この問題に直面している人もいます...あるいは、私はwrapperViewを割り当てるときに何か間違っていますか?

ありがとうございました!

答えて

0

私はHeyzapのiOSエンジニアです。 AdMobはラッパービューとビューの登録を必要とするため、少なくとも複雑なものでなければならないため、ネイティブ広告統合の複雑さを謝罪しています。広告ネットワーク間の一貫性のあるインターフェースを作成することは本当に困難です。

  1. このライン:cell.wrapperView = cell.hzNativeAd.wrapperView;が正しく動作しません。とにかく、ここで私はあなたのコード内の問題だと思うものです。これは単にセルのwrapperViewポインターを取り、それが何を指しているかを変更するだけですが、セルの実際のサブビューは変更されません。実際にHeyzapラッパービューをビュー階層に追加してジェスチャーに応答する必要があります。ここで私はおそらくどうなるのかです:

    [cell.wrapperView removeFromSuperview]; // Temporarily remove your wrapper view from the view hierarchy, since when you load a new cell from a storyboard, it'll be a subview of the `contentView` property. 
    cell.hzNativeAd.wrapperView.frame = cell.wrapperView.frame; 
    [cell.contentView addSubview: cell.hzNativeAd.wrapperView]; 
    [cell.hzNativeAd.wrapperView addSubview: cell.wrapperView]; 
    

(あなたがHeyzapのからそれを明確にするために何か他のものにあなたのwrapperViewプロパティの名前を変更することもできます)。

  1. Heyzapラッパービューから独自のラッパーのビューを削除します:[self.wrapperView removeFromSuperview];
  2. は、ビュー階層からHeyzapラッパーのビューを削除

    限りprepareForReuseが行くように、あなただけのこれらの事を行うことができるはず:[cell.hzNativeAd.wrapperView removeFromSuperview];

  3. nilネイティブ広告参照:self.hzNativeAd = nil;
  4. コールスーパー:この上の応答遅れて申し訳ありません[super prepareForReuse];

。これは過去の月曜日、アメリカの独立記念日だったので、ほとんどのHeyzap従業員は外出していました。

質問がある場合は教えてください。必要に応じてSkypeチャットを利用することができます。

関連する問題