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

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

'आस-पास की सूचनाएं' सुविधा के लिए अटैचमेंट में 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_fallback_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"
        }
      ]
    }

उस दिन का समय

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

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

हफ़्ते का दिन

"anyOfDaysOfWeek" का इस्तेमाल, यह बताने के लिए किया जाता है कि हफ़्ते के कौनसे दिन हैं, कब अटैचमेंट देखा जा सकता है. इसका फ़ॉर्मैट 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]
        }
      ]
    }

अलग-अलग टारगेटिंग ऑब्जेक्ट के नियमों को एक साथ मिला दिया जाता है. नीचे दिए गए उदाहरण में, सोमवार से शुक्रवार, सुबह 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>

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