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()
}