Ek Veri Biçimi

Yakındaki bildirimler eklerini eklemenin en kolay yolu Google İşaretçi Kontrol Paneli'dir. Alternatif olarak, Proximity Beacon API ve aşağıda açıklanan ek veri biçimini de kullanabilirsiniz.

Yakındaki Bildirimler özelliğinin eklerinde com.google.nearby ad alanı, iki harfli dil kodu ve isteğe bağlı -debug son ekinden oluşan bir tür kullanılmalıdır.

Ekler JSON kullanılarak biçimlendirilmelidir. Örneğin:

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

JSON biçimi, aşağıda gösterildiği gibi daha spesifik hedeflemeye olanak tanır:

    {
      "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"]
        }
      ]
    }

Burada:

  • title — İçeriğin başlığı. title uzunluğu 40 karakterden kısa ve 50 karakterden kısa olmalıdır. Bu ideal olarak, kullanıcıya harekete geçirici bir mesaj sunmalıdır. Örneğin, Order with your phone, skip the line, Set up your thermostat veya Learn more about sea otters.
  • url: Uygulamanın, web sitesinin veya hizmetin URL'si.
  • targeting (hedefleme): Cihaz bağlamına göre bildirim görünürlüğünü sınırlamak için isteğe bağlı kurallar.

URL biçimleri

Yakındaki Bildirimler, üç URL biçimini destekler:

Web URL'si

Web URL'si tam olarak bu normal bir URL'dir. Bir web URL'si alındığında, kullanıcıdan URL'yi varsayılan tarayıcıda açması istenir. Özel bir uygulama yapılandırması gerekmez. Web URL'leri HTTPS kullanmalıdır ve normal URL olarak biçimlendirilir:

  https://www.example.com

Web URL'niz bir bildirimi tetiklemiyorsa bunun en olası nedenleri şunlardır:

  • HTTPS yerine HTTP kullanma
  • play.google.com gibi bir uygulama mağazasına bağlantı verilmesi yasaktır. Web sayfası kendi başına olmalı ve doğrudan açılış sayfasında yararlı bilgiler veya işlemler sunmalıdır.

Uygulama amacı

Uygulama intent'i URL'leri bir uygulamada Niyeti tetiklemek için kullanılır. Bir uygulama niyeti URL'si alındığında, ilgili uygulama URL'sinde yer alan parametrelere karşılık gelen uygulama amaç filtresi varsa ilişkili uygulama yanıt verir. Uygulama yüklü değilse kullanıcı, uygulamayı yüklemek için Play Store'a yönlendirilir. Uygulama yüklendikten sonra uygulamayı başlatabilir ve geliştirici tarafından belirtilen özelliğe devam edebilir. Uygulama amacı URL'leri aşağıdaki gibi biçimlendirilir:

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

Niyet URL'lerini biçimlendirme hakkında daha fazla bilgi için Chrome ile Android Amaçları bölümüne bakın. Amaç ekstralarının iletilmediğini unutmayın.

Ayrıca bir amaç oluşturup ardından intent.toUri(Intent.URI_INTENT_SCHEME) kullanarak, aşağıda gösterildiği gibi URL'yi doğru bir şekilde oluşturabilirsiniz:

    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));

Serbest biçimli uygulama amacı

Bu seçenek şema, yol ve paket adı biçimiyle eşleşemeyen uygulama amaçları için kullanılmalıdır. Bu seçeneği yalnızca amaç URL'nizin doğru biçimlendirildiğinden eminseniz kullanın.

Uygulamanın yüklü olmaması durumunda, amaca bir S.browser_fallback_url parametresi ekleyerek kullanıcıyı Play Store yerine belirli bir URL'ye göndermeyi seçebilirsiniz:

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

Bağlam hedefleme

Kurallar

Yakındakiler Bildirimleri dört hedefleme kuralını destekler:

Tarih

dateStart ve dateEnd, ekin görünür olacağı tarih aralığını ISO 8601 biçiminde belirtmek için kullanılır. Aşağıdaki örnekte, Ocak 2017'de gerçekleşen bildirim gösterilmektedir:

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

Günün saati

"timeOfDayStart" ve "timeOfDayEnd", ekin görünür olacağı günlük zaman aralığını ISO 8601 biçiminde belirtmek için kullanılır. Aşağıdaki örnekte her gün 09:00-17:00 arası bildirimler gösterilmektedir:

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

Haftanın günü

"anyOfDaysOfWeek", ekin görünür olduğu günleri belirtmek için kullanılır. Biçim, ISO 8601'dir (1 (Pazartesi) - 7(Pazar). Aşağıdaki örnekte, Cumartesi ve Pazar günü için bildirim gösterilmektedir:

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

Uygulama yükleme durumu

"anyOfAppInstallStates", uygulama görünürlüğünü temel alan ek görünürlüğü ayarlamak için kullanılır. Yalnızca Uygulama amacı URL'si için çalışır. Aşağıdaki örnekte, uygulama yüklenmediğinde bildirim gösterilmektedir.

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

Kuralların kombinasyonu

Her ek için birden fazla hedefleme kuralı olabilir. Aynı hedefleme nesnesindeki kurallar birbirine eklenir. Aşağıdaki örnekte, cumartesi ve pazar günleri 09:00-17:00 saatleri arasında bir bildirim gösterilmektedir.

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

Farklı hedefleme nesnelerine ait kurallar OR operatörüyle gösterilir. Aşağıdaki örnekte, pazartesiden cumaya her gün 09:00 - 17:00 saatleri arasında bir bildirim, ayrıca Cumartesi ve Pazar günleri tüm gün gösterilmektedir.

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

Uygulamanıza bir intent filtresi ekleyin

Uygulamalar, belirtilen URL'nin şemasını, ana makinesini ve yolunu işleyecek şekilde yapılandırılmalıdır. Bunu yapmak için AndroidManifest.xml dosyanızda şema, ana makine ve yol ile eşleşen bir <intent-filter> tanımlamak ve bu öğeyi bir kategori filtresi ile göz atılabilir olarak işaretlemek üzere burada gösterildiği gibi eklemeniz gerekir:

  <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>

Daha fazla bilgi için Uygulama Bağlantılarını Kullanma bölümüne bakın.