الخدمة الوسيطة الداخلية ليست متوفرة للعامة
عروض الأسعار الداخلية مع 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 بعرض الأسعار أو عرض رسالة الخطأ التي تم تلقيها من خادم المزاد.