ओपन मेज़रमेंट की सुविधा चालू करना

प्लैटफ़ॉर्म चुनें: HTML5 Android iOS

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

  • ओपन मेज़रमेंट का इस्तेमाल करने के लिए, आपके पास iOS के लिए IMA SDK टूल का 3.9.0 या इसके बाद का वर्शन होना चाहिए.

  • अगर VAST 4.1 या इसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो विज्ञापनों को VAST 4.1 स्पेसिफ़िकेशन के मुताबिक, अपने वीएएसटी में <AdVerifications> ट्रैफ़िक के लिए कॉन्फ़िगर किया जाना चाहिए. अगर ऐसा नहीं किया जा रहा है, तो <Extension type="AdVerifications"> का इस्तेमाल किया जाना चाहिए.

  • AdDisplayContainer को किसी भी ओवरले (पारदर्शी या अपारदर्शी) से न ढकें. ऐसा इसलिए, क्योंकि ओएम SDK इन्हें रुकावट के तौर पर फ़्लैग करेगा और इससे विज्ञापन दिखने से जुड़े आंकड़े कम हो जाएंगे.

ज़रूरी शर्तें

टेस्ट करना

IMA SDK का इस्तेमाल करके ओपन मेज़रमेंट की जांच करने के लिए, IMA के ऐसे वर्शन का इस्तेमाल करें जो ओएम एसडीके के साथ काम करता हो. साथ ही, टेस्ट विज्ञापन टैग का इस्तेमाल करें.

आपको अपने VAST रिस्पॉन्स में <AdVerifications> दिखेगा.

वीडियो कंट्रोल ओवरले में आने वाली रुकावटों को रजिस्टर करता है

वीडियो कंट्रोल, जैसे कि रोकने वाले बटन या प्रोग्रेस बार, लोगों को वीडियो चलाने से जुड़ी ज़रूरी जानकारी और कार्रवाइयां उपलब्ध कराते हैं. मोबाइल पर, सटीक तरीके से टैप न कर पाने और उपयोगकर्ता की उम्मीदों की वजह से, मीडिया एलिमेंट पर बड़े और टच-फ़्रेंडली कंट्रोल रेंडर करना आम बात हो गई है. ये कंट्रोल, आम तौर पर उपयोगकर्ता के टैप करने पर दिखते हैं और फिर गायब हो जाते हैं. वीडियो चलाने के दौरान, ये कंट्रोल ज़्यादातर समय तक नहीं दिखते.

वीडियो कंट्रोल को ओवरले करने का उदाहरण देखने के लिए, YouTube ऐप्लिकेशन में रेंडरिंग कंट्रोल की यह इमेज देखें:

मेज़रमेंट ओवरले की उदाहरण इमेज खोलें

IMA SDK का इस्तेमाल करते समय, ज़्यादातर पब्लिशर इन कंट्रोल को लागू करते हैं. इसके लिए, वे विज्ञापन दिखाने वाले कंटेनर के ऊपर एक व्यू जोड़ते हैं. यह व्यू ज़्यादातर पारदर्शी होता है. आम तौर पर, कंट्रोल इस व्यू के चाइल्ड एलिमेंट होते हैं. ये वीडियो प्लेयर को पूरी तरह से ढक देते हैं. इस पारदर्शी ओवरले का इस्तेमाल, टैप इवेंट कैप्चर करने के लिए किया जाता है. इसके बाद, टैप करने पर उपयोगकर्ताओं को कंट्रोल रेंडर किए जाते हैं.

ओपन मेज़रमेंट SDK का इस्तेमाल करके, विज्ञापन दिखने की संभावना का हिसाब लगाते समय, मीडिया एलिमेंट पर दिखने वाले सभी व्यू को रुकावटें माना जाता है. इससे विज्ञापन दिखने की संभावना कम हो जाती है. अगर पारदर्शी टैप ओवरले, पूरे विज्ञापन डिसप्ले कंटेनर के ऊपर मौजूद है, तो इन्वेंट्री को पूरी तरह से न दिखने वाली इन्वेंट्री के तौर पर एलान किया जा सकता है.

Open Measurement SDK, वीडियो कंट्रोल के लिए प्रावधान करता है. इन्हें "उपयोगकर्ता के लिए फ़ायदेमंद" रुकावटें माना जाता है. ये उपयोगकर्ता के अनुभव के लिए ज़रूरी हैं. एक बार जब किसी डोमेन को भरोसेमंद के तौर पर रजिस्टर कर लिया जाता है, तो विज्ञापन दिखने की संभावना के मेज़रमेंट में इन कंट्रोल को शामिल नहीं किया जाता.

IAB और MRC के साथ काम करने वाला IMA SDK, इन ओवरले को Open Measurement SDK के साथ रजिस्टर करने के लिए एक एपीआई उपलब्ध कराता है. ये कंट्रोल, पूरी तरह से पारदर्शी ओवरले या छोटे बटन होने चाहिए. वीडियो कंट्रोल से जुड़े व्यू के अलावा, किसी अन्य व्यू को रजिस्टर नहीं किया जाना चाहिए.

DO register रजिस्टर न करें
  • उपयोगकर्ता के टैप कैप्चर करने के लिए पारदर्शी ओवरले
  • कुछ समय के लिए दिखने वाले बटन
    • रोकें
    • चलाएं
    • फ़ुलस्क्रीन
    • कास्ट/AirPlay
    • छोटा करें
    • प्रोग्रेस/सीक
    • वीडियो चलाने से जुड़ी अन्य कार्रवाइयां
  • वॉटरमार्क
  • पॉप-अप
  • डायलॉग
  • नॉन-ट्रांज़िएंट बटन
  • अन्य व्यू छिपाना

यहां दिए गए सैंपल कोड में, विज्ञापन दिखाने वाले कंटेनर पर वीडियो कंट्रोल ओवरले रजिस्टर करने का तरीका बताया गया है:

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