Files
wagic/adwhirl/AdWhirlSDK_iOS_3.1.1/AdWhirl/adapters/AdWhirlAdapterJumpTap.m
2011-12-15 11:18:37 +00:00

239 lines
6.3 KiB
Objective-C

/*
AdWhirlAdapterJumpTap.m
Copyright 2009 AdMob, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#import "AdWhirlAdapterJumpTap.h"
#import "AdWhirlView.h"
#import "AdWhirlConfig.h"
#import "AdWhirlAdNetworkConfig.h"
#import "AdWhirlAdNetworkAdapter+Helpers.h"
#import "AdWhirlAdNetworkRegistry.h"
@implementation AdWhirlAdapterJumpTap
+ (AdWhirlAdNetworkType)networkType {
return AdWhirlAdNetworkTypeJumpTap;
}
+ (void)load {
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
}
- (void)getAd {
JTAdWidget *widget = [[JTAdWidget alloc] initWithDelegate:self
shouldStartLoading:YES];
widget.frame = kAdWhirlViewDefaultFrame;
widget.refreshInterval = 0; // do not self-refresh
self.adNetworkView = widget;
if ([adWhirlDelegate respondsToSelector:@selector(jumptapTransitionType)]) {
widget.transition = [adWhirlDelegate jumptapTransitionType];
}
[widget release];
}
- (void)stopBeingDelegate {
// no way to set JTAdWidget's delegate to nil
}
- (void)dealloc {
[super dealloc];
}
#pragma mark JTAdWidgetDelegate methods
- (NSString *)publisherId:(id)theWidget {
NSString *pubId = networkConfig.pubId;
if (pubId == nil) {
NSDictionary *cred = networkConfig.credentials;
if (cred != nil) {
pubId = [cred objectForKey:@"publisherID"];
}
}
return pubId;
}
- (NSString *)site:(id)theWidget {
NSString *siteId = nil;
if ([adWhirlDelegate respondsToSelector:@selector(jumptapSiteId)]) {
siteId = [adWhirlDelegate jumptapSiteId];
}
if (siteId == nil) {
NSDictionary *cred = networkConfig.credentials;
if (cred != nil) {
siteId = [cred objectForKey:@"siteID"];
}
}
return siteId;
}
- (NSString *)adSpot:(id)theWidget {
NSString *spotId = nil;
if ([adWhirlDelegate respondsToSelector:@selector(jumptapSpotId)]) {
spotId = [adWhirlDelegate jumptapSpotId];
}
if (spotId == nil) {
NSDictionary *cred = networkConfig.credentials;
if (cred != nil) {
spotId = [cred objectForKey:@"spotID"];
}
}
return spotId;
}
- (BOOL)shouldRenderAd:(id)theWidget {
[adWhirlView adapter:self didReceiveAdView:theWidget];
return YES;
}
- (void)beginAdInteraction:(id)theWidget {
[self helperNotifyDelegateOfFullScreenModal];
}
- (void)endAdInteraction:(id)theWidget {
[self helperNotifyDelegateOfFullScreenModalDismissal];
}
- (void)adWidget:(id)theWidget didFailToShowAd:(NSError *)error {
[adWhirlView adapter:self didFailAd:error];
}
- (void)adWidget:(id)theWidget didFailToRequestAd:(NSError *)error {
[adWhirlView adapter:self didFailAd:error];
}
- (BOOL)respondsToSelector:(SEL)selector {
if (selector == @selector(location:)
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
return NO;
}
else if (selector == @selector(query:)
&& ![adWhirlDelegate respondsToSelector:@selector(keywords)]) {
return NO;
}
else if (selector == @selector(category:)
&& ![adWhirlDelegate respondsToSelector:@selector(jumptapCategory)]) {
return NO;
}
else if (selector == @selector(adultContent:)
&& ![adWhirlDelegate respondsToSelector:@selector(jumptapAdultContent)]) {
return NO;
}
return [super respondsToSelector:selector];
}
#pragma mark JTAdWidgetDelegate methods -Targeting
- (NSString *)query:(id)theWidget {
return [adWhirlDelegate keywords];
}
- (NSString *)category:(id)theWidget {
return [adWhirlDelegate jumptapCategory];
}
- (AdultContent)adultContent:(id)theWidget {
return [adWhirlDelegate jumptapAdultContent];
}
#pragma mark JTAdWidgetDelegate methods -General Configuration
- (NSDictionary*)extraParameters:(id)theWidget {
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:10];
if ([adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]) {
NSInteger age = [self helperCalculateAge];
if (age >= 0)
[dict setObject:[NSString stringWithFormat:@"%d",age] forKey:@"mt-age"];
}
if ([adWhirlDelegate respondsToSelector:@selector(gender)]) {
NSString *gender = [adWhirlDelegate gender];
if (gender != nil)
[dict setObject:gender forKey:@"mt-gender"];
}
if ([adWhirlDelegate respondsToSelector:@selector(incomeLevel)]) {
NSUInteger income = [adWhirlDelegate incomeLevel];
NSString *level = nil;
if (income < 15000) {
level = @"000_015";
}
else if (income < 20000) {
level = @"015_020";
}
else if (income < 30000) {
level = @"020_030";
}
else if (income < 40000) {
level = @"030_040";
}
else if (income < 50000) {
level = @"040_050";
}
else if (income < 75000) {
level = @"050_075";
}
else if (income < 100000) {
level = @"075_100";
}
else if (income < 125000) {
level = @"100_125";
}
else if (income < 150000) {
level = @"125_150";
}
else {
level = @"150_OVER";
}
[dict setObject:level forKey:@"mt-hhi"];
}
return dict;
}
- (UIColor *)adBackgroundColor:(id)theWidget {
return [self helperBackgroundColorToUse];
}
- (UIColor *)adForegroundColor:(id)theWidget {
return [self helperTextColorToUse];
}
#pragma mark JTAdWidgetDelegate methods -Location Configuration
- (BOOL)allowLocationUse:(id)theWidget {
return adWhirlConfig.locationOn;
}
- (CLLocation*)location:(id)theWidget {
if (![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
return nil;
}
return [adWhirlDelegate locationInfo];
}
#pragma mark JTAdWidgetDelegate methods -Ad Display and User Interaction
// The ad orientation changed
//- (void)adWidget:(id)theWidget orientationHasChangedTo:(UIInterfaceOrientation)interfaceOrientation;
// Language methods
//- (NSString*)getPlayVideoPrompt:(id)theWidget;
//- (NSString*)getBackButtonPrompt:(id)theWidget isInterstitial:(BOOL)isInterstitial;
//- (NSString*)getSafariButtonPrompt:(id)theWidget;
@end