สื่อกลางโฆษณาภายในองค์กรยังไม่พร้อมให้บริการต่อสาธารณะ
ขณะนี้การประมูลภายในองค์กรด้วย Audience Network เป็นเวอร์ชั่นเบต้าแบบปิดและยังไม่พร้อมให้บริการต่อสาธารณะ เราจะแจ้งข้อมูลอัพเดตเพิ่มเติมหากมีการเปลี่ยนแปลง
ในระหว่างนี้ คุณสามารถเข้าถึงการประมูลของ Audience Network ผ่านแพลตฟอร์มสื่อกลางโฆษณาที่เราเป็นพาร์ทเนอร์ด้วยแทนได้
คู่มือนี้จะอธิบายวิธีที่คุณจะสามารถสร้างแอพไคลเอ็นต์สำหรับ iOS ได้ ในคู่มือแบบทีละขั้นตอนด้านล่างนี้ เราจะใช้ตัวอย่างเป็นการส่งคำขอการประมูลราคาไปยังเซิร์ฟเวอร์การประมูลราคาของคุณบนโฆษณาคั่น ตรวจสอบให้แน่ใจว่าคุณคุ้นเคยกับการใช้โฆษณาคั่นบน Audience Network แล้ว นอกจากนี้ การประมูลยังรองรับรูปแบบเนทีฟ, แบนเนอร์, คั่น, วิดีโอในสตรีม และวิดีโอที่มีรางวัลหลังชมจบอีกด้วย เมื่อใช้รูปแบบโฆษณาอื่นๆ นอกเหนือจากรูปแบบคั่น คุณจะสามารถเปลี่ยนการตั้งค่าเซิร์ฟเวอร์ของคุณได้
ในฝั่งไคลเอ็นต์ เราจำเป็นต้องรวบรวมพารามิเตอร์ที่จำเป็นสำหรับคำขอการประมูลราคา และส่งไปยังเซิร์ฟเวอร์การประมูลราคาโดยใช้คำขอ HTTP ต่อไปนี้เป็นตัวอย่างการใช้ใน iOS เพื่อสร้างคำขอการประมูลราคาตามรูปแบบที่ระบุไว้ข้างต้น
- (NSMutableURLRequest *)getRequest { NSURL *url = [NSURL URLWithString:@"${AUCTION_SERVER_ENDPOINT}"]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; NSDictionary *buyerToken = @{@"audience_network": [FBAdSettings bidderToken]}; NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; NSString *bundleVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; NSString *idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; int32_t dnt = [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled] ? 0 : 1; NSDictionary *bodyDict = @{@"app_id": @"101", @"placement_id": @"1", @"bundle": bundleIdentifier, @"bundle_version": bundleVersion, @"ifa": idfa, @"coppa": @0, @"dnt": [NSNumber numberWithInt:dnt], @"buyer_tokens": buyerToken, @"test": @1}; NSData *bodyData = [NSJSONSerialization dataWithJSONObject:bodyDict options:0 error:nil]; [request setHTTPBody:bodyData]; [request setHTTPMethod:@"POST"]; return request; }
ต่อไปนี้เป็นตัวอย่างส่วนย่อยของโค้ดของฟังก์ชั่นคงที่ที่ส่งคำขอการประมูลราคาไปยังเซิร์ฟเวอร์ และเรียกใช้เมธอดการเรียกกลับพร้อมการตอบกลับของเซิร์ฟเวอร์
NSURLSession *session = [NSURLSession sharedSession]; [[session dataTaskWithRequest: self.getRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (!error) { NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; if (json) { self.placementId = json[@"placement_id"]; self.adFormat = json[@"ad_format"]; self.platformName = json[@"platform_name"]; self.platformPlacementId = json[@"platform_placement_id"]; self.payload = json[@"bid_payload"]; dispatch_async(dispatch_get_main_queue(), ^{ self.statusLabel.text = @"Ad is available"; }); } else { NSLog(@"Requesting Error: unknow error."); dispatch_async(dispatch_get_main_queue(), ^{ self.statusLabel.text = @"Ad is NOT available"; }); } } else { NSLog(@"Requesting Error: %@", error.localizedDescription); self.placementId = nil; self.adFormat = nil; self.platformName = nil; self.platformPlacementId = nil; self.payload = nil; dispatch_async(dispatch_get_main_queue(), ^{ self.statusLabel.text = @"Ad is NOT available"; }); } }] resume];
เราใช้พารามิเตอร์การตอบกลับบนแอพไคลเอ็นต์เพื่อให้สามารถบอกได้ว่าแพลตฟอร์มใดชนะการประมูลราคา จากนั้นจึงโหลดโฆษณา หากการประมูลราคาสำเร็จ และ Audience Network ชนะการประมูลราคา พารามิเตอร์การตอบกลับจะมีสตริงเพย์โหลดที่เราสามารถใช้โหลดโฆษณาได้ เราสามารถเรียกใช้เมธอด loadAdWithBidPayload
ในคลาสของรูปแบบโฆษณาที่ถูกต้องเพื่อโหลดโฆษณาได้ ต่อไปนี้คือเมธอดการเรียกกลับคำขอการประมูลราคาที่ใช้งาน
- (IBAction)didShow:(UIButton *)sender { if ([self.statusLabel.text isEqualToString:@"Ad is NOT available"]) { return; } if (![self.platformName isEqualToString:@"audience_network"] || ![self.adFormat isEqualToString:@"interstitial"] || !self.platformPlacementId) { self.statusLabel.text = @"Ad is NOT available"; return; } self.interstitialAd = [[FBInterstitialAd alloc] initWithPlacementID:self.platformPlacementId]; self.interstitialAd.delegate = self; [self.interstitialAd loadAdWithBidPayload:self.payload]; }
ด้วยเหตุนี้ แอพตัวอย่างจะโหลดโฆษณาหาก Audience Network ชนะการประมูลราคา หรือแสดงข้อความแสดงข้อผิดพลาดที่ได้รับจากเซิร์ฟเวอร์การประมูลราคา