iOS के लिए IMA SDK में,
ओपन मेज़रमेंट (ओएम) SDK शामिल है.
यह इंडस्ट्री का एक स्टैंडर्ड है, जिसे
इंटरैक्टिव ऐडवर्टाइज़िंग ब्यूरो (IAB) ने बनाया है. इसकी मदद से, तीसरे पक्ष के
विज्ञापन दिखने से जुड़े आंकड़े मेज़र किए जा सकते हैं और उनकी पुष्टि की जा सकती है. iOS के लिए IMA SDK का इस्तेमाल करने पर, इसमें शामिल ओएम SDK, वीएएसटी विज्ञापन टैग में मौजूद <AdVerifications> टैग को अपने-आप पार्स करता है. साथ ही, ओएमआईडी एपीआई का इस्तेमाल करके, विज्ञापन दिखने से जुड़ा डेटा, मेज़रमेंट के लिए तय किए गए वेंडर को भेजता है. IMA SDK, ओएम SDK के वर्शन 1.6, वीएएसटी 2+ पर GAM AdVerifications एक्सटेंशन, और वीएएसटी 4+ पर AdVerifications नोड के साथ काम करता है.ओपन मेज़रमेंट का फ़ायदा पाने के लिए, इन बातों का ध्यान रखें:
ओपन मेज़रमेंट का इस्तेमाल करने के लिए, आपके पास iOS के लिए IMA SDK का वर्शन 3.9.0 या उससे नया वर्शन होना चाहिए.
AdDisplayContainerको किसी भी तरह के ओवरले (पारदर्शी या अपारदर्शी) से कवर न करें. ऐसा करने पर, ओएम SDK इन्हें रुकावट के तौर पर फ़्लैग करेगा और विज्ञापन दिखने की दर कम हो जाएगी.
ज़रूरी शर्तें
- अगर आपके विज्ञापनों को Ad Manager के ज़रिए ट्रैफ़िक किया जाता है, तो विज्ञापन दिखने की दर की जानकारी देने वाला कोई प्रोवाइडर अपने Ad Manager नेटवर्क के लिए कॉन्फ़िगर करें और उस प्रोवाइडर को अपने लाइन आइटम असाइन करें.
टेस्ट करना
IMA SDK का इस्तेमाल करके, ओपन मेज़रमेंट को टेस्ट करने के लिए, IMA के ऐसे वर्शन का इस्तेमाल करें जो ओएम SDK के साथ काम करता हो. इसके अलावा, टेस्ट विज्ञापन टैग का भी इस्तेमाल करें.
आपको अपने वीएएसटी जवाब में, <AdVerifications> दिखेगा.
वीडियो कंट्रोल के ओवरले में आने वाली रुकावटों को रजिस्टर करना
वीडियो कंट्रोल, जैसे कि रोकने के बटन या प्रोग्रेस बार, उपयोगकर्ताओं को वीडियो चलाने से जुड़ी ज़रूरी जानकारी और कार्रवाइयां उपलब्ध कराते हैं. मोबाइल पर, सटीक तरीके से टैप न हो पाने और उपयोगकर्ताओं की उम्मीदों की वजह से, मीडिया एलिमेंट पर बड़े और टच-फ़्रेंडली कंट्रोल रेंडर करना आम बात हो गई है. ये कंट्रोल आम तौर पर, उपयोगकर्ता के टैप करने पर दिखते और गायब होते हैं. साथ ही, वीडियो चलाने के ज़्यादातर समय तक ये नहीं दिखते.
वीडियो कंट्रोल के ओवरले का उदाहरण देखने के लिए, YouTube ऐप्लिकेशन पर कंट्रोल रेंडर करने वाली यह इमेज देखें:

IMA SDK का इस्तेमाल करने पर, ज़्यादातर पब्लिशर इन कंट्रोल को, विज्ञापन दिखाने वाले कंटेनर के ऊपर एक व्यू जोड़कर लागू करते हैं. यह व्यू ज़्यादातर पारदर्शी होता है. आम तौर पर, कंट्रोल इस व्यू के चाइल्ड एलिमेंट होते हैं. ये एलिमेंट, वीडियो प्लेयर को पूरी तरह से कवर करते हैं. इस पारदर्शी ओवरले का इस्तेमाल, टैप इवेंट कैप्चर करने के लिए किया जाता है. इसके बाद, टैप करने पर उपयोगकर्ताओं को कंट्रोल रेंडर किए जाते हैं.
ओपन मेज़रमेंट SDK का इस्तेमाल करके, विज्ञापन दिखने की दर का हिसाब लगाते समय, मीडिया एलिमेंट पर दिखने वाले सभी व्यू को रुकावट माना जाता है. इससे विज्ञापन दिखने की दर कम हो जाती है. अगर कोई पारदर्शी टैप ओवरले, विज्ञापन दिखाने वाले पूरे कंटेनर के ऊपर दिखता है, तो इन्वेंट्री को पूरी तरह से न दिखने वाला बताया जा सकता है.
ओपन मेज़रमेंट SDK में, वीडियो कंट्रोल को "उपयोगी" रुकावटें माना जाता है. ये रुकावटें, उपयोगकर्ता के अनुभव के लिए ज़रूरी होती हैं. उपयोगी के तौर पर रजिस्टर होने के बाद, इन कंट्रोल को विज्ञापन दिखने की दर के मेज़रमेंट से बाहर रखा जाता है.
IAB और MRC की मदद से, IMA SDK एक ऐसा एपीआई पेश करता है जिसकी मदद से इन ओवरले को ओपन मेज़रमेंट SDK के साथ रजिस्टर किया जा सकता है. ये कंट्रोल, पूरी तरह से पारदर्शी ओवरले या छोटे बटन होने चाहिए. वीडियो कंट्रोल से जुड़े न होने वाले किसी भी अन्य व्यू को रजिस्टर नहीं किया जाना चाहिए.
| रजिस्टर करें | रजिस्टर न करें |
|---|---|
|
|
यहां दिए गए सैंपल कोड से पता चलता है कि विज्ञापन दिखाने वाले कंटेनर पर, वीडियो कंट्रोल के ओवरले को कैसे रजिस्टर किया जाता है:
Objective-C
- (void)registerObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
UIView *transparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:transparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
}
Swift
func registerObstructions(displayContainer: IMAAdDisplayContainer) {
let transparentTapOverlay = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 250))
let myPauseButton = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 10))
let overlayObstruction = IMAFriendlyObstruction(
view: transparentTapOverlay,
purpose: .notVisible,
detailedReason: "This overlay is transparent")
let pauseButtonObstruction = IMAFriendlyObstruction(
view: myPauseButton,
purpose: .mediaControls,
detailedReason: "This is the video player pause button")
displayContainer.register(overlayObstruction)
displayContainer.register(pauseButtonObstruction)
}
इन रुकावटों को हटाने के लिए, यह तरीका अपनाएं:
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}