Как да интегрирате GreyStripe в admob медиация с персонализирани събития

Опитвам се да интегрирам GreyStripe (което не се поддържа от) в admob посредничество с персонализирани събития, също така прочетох ръководството на: https://developers.google.com/mobile-ads-sdk/docs/ios/mediation/#customevents

Но все още е трудно да се разбере за начинаещ, може ли някой да предостави примерен код или някакъв урок. Благодаря предварително.


person Kevin Chen    schedule 30.05.2012    source източник


Отговори (2)


Внедряването донякъде зависи от мрежата, но ето пълен пример за това как бихте интегрирали мрежата на AdMob чрез персонализирано събитие, ако то вече не се поддържа.

Създайте персонализирано събитие във вашето разположение за посредничество:

  • Етикет - blahblahblah (може да бъде произволен низ)
  • Име на клас - CustomAd (Името на вашия клас. В този пример е CustomAd)
  • Параметър - a1401234567890 (В случая на AdMob имате нужда само от вашия ID на издател. Бихте искали да използвате своя собствен ID на издател тук, това е само пример)

И вашето внедряване ще изглежда нещо подобно:

CustomAd.h

#import "GADCustomEventBanner.h"
#import "GADCustomEventBannerDelegate.h"
#import "GADBannerView.h"
#import "GADBannerViewDelegate.h"

@interface CustomAd : NSObject <GADCustomEventBanner, GADBannerViewDelegate> {
  GADBannerView *bannerView_;
}

@end

CustomAd.m

#import CustomAd.h

@implementation CustomAd

// Will be set by the AdMob SDK.
@synthesize delegate;

- (void)dealloc {
  bannerView_.delegate = nil;
  [bannerView_ release];
  [super dealloc];
}

#pragma mark -
#pragma mark GADCustomEventBanner

- (void)requestBannerAd:(GADAdSize)adSize
              parameter:(NSString *)serverParameter
                  label:(NSString *)serverLabel
                request:(GADCustomEventRequest *)customEventRequest  {
  // Create the bannerView with the appropriate size.
  bannerView_ = [[GADBannerView alloc] initWithAdSize: adSize];

  // Set the delegate to listen for callbacks.
  [bannerView_ setDelegate:self];

  // Set the publisher ID for the banner.  This comes from server parameter
  // you provide when creating the custom event in mediation.
  bannerView_.adUnitID = serverParameter;

  // Let the bannerView know which UIViewController to restore after returning
  // from and ad click.  The UIViewController is available from
  // GADCustomEventBannerDelegate.
  bannerView_.rootViewController = [self.delegate viewControllerForPresentingModalView];

  // Create an ad request using custom targeting options from the custom event
  // request.
  GADRequest *request = [GADRequest request];
  [request setAdditionalParameters:[customEventRequest additionalParameters]];
  [request setBirthday:[customEventRequest userBirthday]];
  [request setGender:[customEventRequest userGender]];
  [request setTesting:[customEventRequest isTesting]];
  if ([customEventRequest userHasLocation]) {
    [request setLocationWithLatitude:[customEventRequest userLatitude] 
                           longitude:[customEventRequest userLongitude]
                            accuracy:[customEventRequest userLocationAccuracyInMeters]];
  }
  [bannerView_ loadRequest:request];
}

#pragma mark -
#pragma mark GADBannerView Callbacks

- (void)adViewDidReceiveAd:(GADBannerView *)adView {
  [self.delegate customEventBanner:self didReceiveAd:adView];
}

- (void)adView:(GADBannerView *)view
    didFailToReceiveAdWithError:(NSError *)error {
  [self.delegate customEventBanner:self didFailAd:error];
}

- (void)adViewWillPresentScreen:(GADBannerView *)adView {
  [self.delegate customEventBanner:self clickDidOccurInAd:adView];
  [self.delegate customEventBannerWillPresentModal:self];
}

- (void)adViewWillDismissScreen:(GADBannerView *)adView {
  [self.delegate customEventBannerWillDismissModal:self];
}

- (void)adViewDidDismissScreen:(GADBannerView *)adView {
  [self.delegate customEventBannerDidDismissModal:self];
}

- (void)adViewWillLeaveApplication:(GADBannerView *)adView {
  [self.delegate customEventBannerWillLeaveApplication:self];
}

@end
person Eric Leichtenschlag    schedule 31.05.2012
comment
Благодаря, Ерик. Все още имам още въпроси. Ако следната заявка бъде изпратена до мобилен телефон: admob-›GeryStripe-›admob Когато превключа от GeryStripe към admob, как да премахна изгледа GeryStripe. В решението AdWhirl AdWhirl предоставя протокол: - (void)stopBeingDelegate; Мога да извикам stopBeingDelegate, за да премахна изгледа GeryStripe. Но в решението за посредничество на Admob не мога да намеря подобна функция. И така, как мога да направя това в Admob посредничество. - person Kevin Chen; 04.06.2012
comment
Не трябва да се обаждаш на нищо. AdMob Mediation SDK трябва да го направи вместо вас. Посредничеството се обажда на requestBannerAd:, за да създадете своя банер GreyStripe и да направите заявка. Когато GreyStripe ви уведоми, че успешно е получила реклама, вие ще извикате [self.delegate customEventBanner:self didReceiveAd:greyStripeView]; В този момент AdMob ще премахне предишната реклама, която се е намирала в изгледа на контейнера, и след това ще постави вместо нея рекламата GreyStripe. - person Eric Leichtenschlag; 05.06.2012
comment
Благодаря Ерик. Вашите коментари са наистина полезни и проблемът ми е разрешен. Благодаря много :) - person Kevin Chen; 07.06.2012

Опитвам се да напиша персонализирани събития за Nexage и това не премахва стария изглед и не поставя новата реклама на екрана.

static BOOL hasInitializedOnce;

@implementation NexageAdMobCustomEventBanner

@synthesize delegate, bannerView_;

- (void)requestBannerAd:(GADAdSize)adSize
          parameter:(NSString *)serverParameter
              label:(NSString *)serverLabel
            request:(GADCustomEventRequest *)request
{
    if (!hasInitializedOnce)
    {
        // Initialize Manager
        [[NexageManager sharedInstance] startUpWithDelegate:self
                                           mediationUrl:@"http://xxxxx.nexage.com"
                                                    dcn:@"xxxxxx"
                                             attributes:nil
                                               features:nil];
    [NexageManager sharedInstance].currentViewController = [self.delegate viewControllerForPresentingModalView];

    // Create banner and immediately get ad
    bannerView_ = [[NexageAdView alloc] initWithPosition:serverParameter frame:CGRectMake(0, 0, 320, 50)];
    [bannerView_ setIntervalTo:10];

    // Set it so that it won't call our Manager again
    hasInitializedOnce = YES;
    NSLog(@"Creating the Banner view for Mediation callback");
}
else
{
//        [bannerView_ rollover];
    NSLog(@"Rolling over the Banner view for Mediation callback");
}


}

- (void)adReceived:(UIView *)ad position:(NSString *)pos
{
    NSLog(@"Nexage Banner received!");
    [self.delegate customEventBanner:self didReceiveAd:ad];
}

- (void)adDidHide:(UIView *)adView
{
    NSLog(@"Called here...");
}

- (void)didFailToReceiveAd:(NSString *)position
{
    [self.delegate customEventBanner:self didFailAd:[NSError errorWithDomain:@"Nexage" code:200 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Not able to get a new Ad", NSLocalizedDescriptionKey, nil]]];
}
person Muthu    schedule 19.03.2013