פורמט של נתוני קובץ מצורף

הדרך הקלה ביותר לצרף קבצים של התראות בקרבת מקום היא באמצעות מרכז הבקרה של Google Beacon. לחלופין, אפשר להשתמש ב- 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 [שם_מוצר] – שם התוכן. האורך של title צריך להיות קצר מ-40 תווים, ולא יותר מ-50 תווים. באופן אידאלי, פעולה זו צריכה להעניק למשתמש קריאה לפעולה. לדוגמה, Order with your phone, skip the line, Set up your thermostat או Learn more about sea otters.
  • url – כתובת ה-URL של האפליקציה, האתר או השירות.
  • מיקוד — כללים אופציונליים להגבלת החשיפה של התראות על סמך ההקשר של המכשיר.

פורמטים של כתובות URL

התכונה 'התראות בקרבת מקום' תומכת בשלושה פורמטים של כתובות URL:

כתובת אתר

כתובת אתר זהה בדיוק לכתובת URL רגילה. כשמתקבלת כתובת URL באינטרנט, המשתמש מתבקש לפתוח את כתובת ה-URL בדפדפן ברירת המחדל. לא נדרשת הגדרה מיוחדת של האפליקציה. כתובות URL חייבות להשתמש ב-HTTPS, והן צריכות להיות בפורמט של כתובת URL רגילה:

  https://www.example.com

אם כתובת ה-URL לא מפעילה התראה, הסיבות הנפוצות ביותר לכך הן:

  • שימוש ב-HTTP במקום ב-HTTPS
  • אסור לקשר לחנות אפליקציות כמו play.google.com. דף האינטרנט צריך לעמוד בפני עצמו ולהציע מידע או פעולות שימושיים ישירות בדף הנחיתה.

כוונת האפליקציה

כתובות URL עם כוונת רכישה משמשות להפעלת Intent באפליקציה. כשמתקבלת כתובת URL לכוונה באפליקציה, האפליקציה המשויכת מגיבה לפרמטרים הכלולים בכתובת ה-URL, בתנאי שקיים מסנן Intent של אפליקציה תואמת. אם האפליקציה לא מותקנת במכשיר, המשתמש יועבר לחנות Play כדי להתקין אותה. לאחר ההתקנה, המשתמש יוכל להפעיל את האפליקציה ולהמשיך לתכונה שצוינה על ידי המפתח. כתובות URL של כוונת רכישה בפורמט הבא:

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

מידע נוסף על הפורמט של כתובות URL עם כוונת רכישה זמין במאמר Android Intents עם Chrome. לתשומת ליבכם: לא מתבצעת העברה של תוספות לכוונת רכישה.

אפשר גם ליצור את כתובת ה-URL בצורה נכונה על ידי יצירת כוונה, ואז להשתמש ב-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));

כוונת רכישה בפריסה גמישה

יש להשתמש באפשרות הזו עבור כוונות אפליקציה שאינן תואמות לפורמט, לנתיב ולשם החבילה. השתמשו באפשרות הזו רק אם אתם בטוחים שכתובת ה-URL של כוונת הרכישה שלכם כתובה בפורמט הנכון.

אם האפליקציה לא מותקנת, אתם יכולים לשלוח את המשתמש לכתובת URL שצוינה במקום לחנות Play, על ידי הוספת הפרמטר 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:00 עד 17:00 מדי יום:

    {
      "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" מיועד להגדרת החשיפה של קבצים מצורפים על סמך מצבי ההתקנה של האפליקציה. היא פועלת רק בכתובת URL כוונת רכישה. הדוגמה הבאה מציגה התראה כשהאפליקציה לא מותקנת.

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

שילוב של כללים

לכל קובץ מצורף יכולים להיות מספר כללי מיקוד. כללים מאותו אובייקט מיקוד שייכים זה לזה באופן ידני. בדוגמה הבאה מוצגת התראה מ-9:00 עד 17:00 בימי שבת וראשון.

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

כללים מאובייקטי הטירגוט השונים הם ORD הם יחד. בדוגמה הבאה מוצגת התראה מ-9:00 עד 17:00 מדי יום שני עד שישי, בתוספת יום שלם בימי שבת וראשון.

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

איך מוסיפים מסנן כוונה לאפליקציה שלכם

חובה להגדיר אפליקציות לטיפול בסכימה, במארח ובנתיב עבור כתובת ה-URL הנתונה. לשם כך, צריך להוסיף רכיב ב-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>

מידע נוסף זמין במאמר טיפול בקישורים לאפליקציות.