अटैचमेंट डेटा फ़ॉर्मैट

आस-पास नोटिफ़िकेशन अटैचमेंट जोड़ने का सबसे आसान तरीका यह है Google बीकन डैशबोर्ड. वैकल्पिक रूप से, आप Proximity Beacon API और यहां अटैचमेंट डेटा फ़ॉर्मैट के बारे में बताया गया है.

आस-पास की सूचनाएं पाने की सुविधा के लिए अटैचमेंट को com.google.nearby नेमस्पेस और दो अक्षरों वाली भाषा वाला टाइप कोड और वैकल्पिक -debug सफ़िक्स शामिल करें.

अटैचमेंट को JSON का इस्तेमाल करके फ़ॉर्मैट किया जाना चाहिए. उदाहरण के लिए:

    {
      "title": "Example",
      "url": "https://www.example.com"
    }

JSON फ़ॉर्मैट, वैकल्पिक तौर पर ज़्यादा सटीक टारगेटिंग की अनुमति देता है, जैसा कि नीचे दिखाया गया है:

    {
      "title": "Example",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startDate": "2017-01-01",
          "endDate": "2017-01-31",
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00",
          "anyOfDaysOfWeek": [1, 2, 3, 4, 5, 6, 7],
          "anyOfAppInstallStates": ["INSTALLED", "NOT_INSTALLED"]
        }
      ]
    }

कहां:

  • टाइटल — कॉन्टेंट का टाइटल. title की लंबाई कम होनी चाहिए यह 40 से ज़्यादा वर्ण का नहीं होना चाहिए. साथ ही, इसमें 50 से कम वर्ण होने चाहिए. आम तौर पर, इससे उपयोगकर्ता को कॉल-टू-ऐक्शन देना. उदाहरण के लिए, Order with your phone, skip the line, Set up your thermostat या Learn more about sea otters.
  • url — ऐप्लिकेशन, वेबसाइट या सेवा का यूआरएल.
  • टारगेटिंग — सूचना दिखने की सीमा को सीमित करने के लिए वैकल्पिक नियम पर आधारित है.

यूआरएल के फ़ॉर्मैट

आस-पास की सूचनाएं तीन यूआरएल फ़ॉर्मैट के साथ काम करती हैं:

वेब यूआरएल

वेब यूआरएल बिलकुल एक सामान्य यूआरएल होता है. जब कोई वेब यूआरएल मिलता है, तो उपयोगकर्ता को डिफ़ॉल्ट ब्राउज़र में यूआरएल खोलने के लिए कहा जाता है. कोई खास ऐप्लिकेशन नहीं कॉन्फ़िगरेशन ज़रूरी है. वेब यूआरएल में एचटीटीपीएस का इस्तेमाल किया जाना चाहिए. साथ ही, वे सामान्य यूआरएल:

  https://www.example.com

अगर आपका वेब यूआरएल किसी सूचना को ट्रिगर नहीं कर रहा है, तो इसकी ये वजहें हो सकती हैं:

  • एचटीटीपीएस के बजाय एचटीटीपी का इस्तेमाल करना
  • Play.google.com जैसे ऐप स्टोर से लिंक करने की अनुमति नहीं है. वेब पेज उसे अपना निजी मुद्दे शामिल करना चाहिए और उस पर उपयोगी जानकारी या लैंडिंग पेज पर सीधे ले जाया जा सकता है.

ऐप्लिकेशन इंटेंट

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

  intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui;end;

इंटेंट यूआरएल को फ़ॉर्मैट करने के बारे में ज़्यादा जानकारी के लिए, देखें Chrome के साथ Android इंटेंट. ध्यान दें कि इंटेंट एक्स्ट्रा पास नहीं किए गए हैं.

इंटेंट बनाकर और फिर उसका इस्तेमाल करके, सही तरीके से यूआरएल बनाया जा सकता है intent.toUri(Intent.URI_INTENT_SCHEME) जैसा कि यहां दिखाया गया है:

    Intent intent = new Intent()
        .setData(new Uri.Builder()
            .scheme("yourscheme")
            .authority("host")
            .appendPath("path")
            .build())
        .setPackage("com.yourapp.ui");
    Log.i(TAG, "Use this intent url: " + intent.toUri(Intent.URI_INTENT_SCHEME));

फ़्री-फ़ॉर्म ऐप्लिकेशन इंटेंट

इस विकल्प का इस्तेमाल ऐसे ऐप्लिकेशन इंटेंट के लिए किया जाना चाहिए जो स्कीम, पाथ, और पैकेज नाम का फ़ॉर्मैट. इस विकल्प का इस्तेमाल सिर्फ़ तब करें, जब आपको पता हो कि आपका इंटेंट यूआरएल सही फ़ॉर्मैट में है.

आप उपयोगकर्ता को Play Store के बजाय किसी खास यूआरएल पर भेजना चुन सकते हैं यह इवेंट जोड़ने से ऐप्लिकेशन को इंस्टॉल नहीं किए जाने पर इंटेंट के लिए S.browser_createback_url पैरामीटर:

intent://host/path#Intent;scheme=yourscheme;package=com.yourapp.ui; \
  S.browser_fallback_url=http%3A%2F%2Fm.yoursite.com%2Fpath%2F%;end;

संदर्भ के हिसाब से टारगेटिंग

नियम

'आस-पास की सूचनाएं' सुविधा में, टारगेट करने के चार नियम काम करते हैं:

तारीख

dateStart और dateEnd का इस्तेमाल करके, तारीख की वह सीमा तय की जाती है जिसमें अटैचमेंट ISO 8601 प्रारूप में दिखाई दे रहा है. नीचे दिए गए उदाहरण में, जनवरी 2017 की सूचना दिखाई गई है.:

    {
      "title": "January 2017",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startDate": "2017-01-01",
          "endDate": "2017-01-31"
        }
      ]
    }

दिन का समय

"समय का दिन शुरू करें" और "timeOfDayEnd" का इस्तेमाल नीचे दी गई जानकारी के आधार पर, जो अटैचमेंट ISO 8601 फ़ॉर्मैट में दिख रहा हो. यहां दिए गए उदाहरण में, हर दिन सुबह 9 बजे से शाम 5 बजे तक सूचना दिखाई गई है:

    {
      "title": "Work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

हफ़्ते का दिन

"किसी भी दिन का समय" का इस्तेमाल सप्ताह के उन दिनों को बताने के लिए किया जाता है जब अटैचमेंट दृश्यमान है. फ़ॉर्मैट ISO 8601 है, जिसमें 1(सोमवार) से 7(रविवार) तक शामिल है. नीचे दिए गए उदाहरण में शनिवार और रविवार को सूचना दिखाई गई है:

    {
      "title": "Weekends",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

ऐप्लिकेशन इंस्टॉल किए जाने की स्थिति

"anyOfAppInstallStates" ऐप्लिकेशन के आधार पर अटैचमेंट की दृश्यता सेट करने के लिए है इंस्टॉल की स्थिति. यह सिर्फ़ ऐप्लिकेशन इंटेंट यूआरएल के लिए काम करता है. नीचे दिए गए उदाहरण के तौर पर, ऐप्लिकेशन के इंस्टॉल न होने पर सूचना दिखाई जाती है.

    {
      "title": "App not installed",
      "url": "intent://host/path#Intent;package=com.example",
      "targeting":[
        {
          "anyOfAppInstallStates": ["NOT_INSTALLED"]
        }
      ]
    }

नियमों का संयोजन

हर अटैचमेंट के लिए, टारगेटिंग के एक से ज़्यादा नियम हो सकते हैं. नियम एक ही टारगेटिंग ऑब्जेक्ट को एक साथ AND जोड़ा गया हो. यह उदाहरण शनिवार और रविवार को सुबह 9 बजे से शाम 5 बजे तक सूचना दिखाता है.

    {
      "title": "Weekend and work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
          "anyOfDaysOfWeek": [6, 7]
        }
      ]
    }

अलग-अलग टारगेटिंग ऑब्जेक्ट के नियमों को OR के साथ एक साथ जोड़ा जाता है. नीचे दिए गए उदाहरण में, हर सोमवार से शुक्रवार सुबह 9 बजे से शाम 5 बजे तक की सूचना दिखाई गई है, साथ ही, शनिवार और रविवार को पूरे दिन.

    {
      "title": "Weekend or work time",
      "url": "https://www.example.com",
      "targeting":[
        {
          "anyOfDaysOfWeek": [6, 7]
        },
        {
          "startTimeOfDay": "9:00",
          "endTimeOfDay": "17:00"
        }
      ]
    }

अपने ऐप्लिकेशन में इंटेंट फ़िल्टर जोड़ें

ऐप्लिकेशन को दिए गए यूआरएल के लिए स्कीम, होस्ट, और पाथ को मैनेज करने के लिए कॉन्फ़िगर किया जाना ज़रूरी है. ऐसा करने के लिए, आपको अपनी AndroidManifest.xml फ़ाइल में एक एलिमेंट जोड़ना होगा, ताकि <intent-filter> वह स्कीम, होस्ट, और पाथ से मेल खाता हो. साथ ही, उसे कैटगरी के साथ ब्राउज़ करने लायक मार्क करता हो फ़िल्टर करें, जैसा कि यहां दिखाया गया है:

  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
     <!-- both categories below are required -->
     <category android:name="android.intent.category.BROWSABLE"/>
     <category android:name="android.intent.category.DEFAULT"/>
    <data android:host="host"
          android:pathPrefix="/path"
          android:scheme="yourscheme"/>
  </intent-filter>

इस बारे में ज़्यादा जानने के लिए, यह देखें ऐप्लिकेशन लिंक मैनेज करना.