מדיניות DataCapture

מדיניות ניתנת להרחבה

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

מדיניות DataCapture מתעדת נתונים (כמו מטען ייעודי, כותרות HTTP ופרמטרים של שאילתה) מ-proxy ל-API לשימוש ב-Analytics. אפשר להשתמש בנתונים שנאספו בדוחות מותאמים אישית של Analytics, וגם כדי להטמיע כללי מונטיזציה ומעקב.

המדיניות הזו היא מדיניות שניתנת להרחבה, והשימוש בה עשוי להשפיע על העלויות או על הניצול, בהתאם לרישיון שלכם ל-Apigee. למידע על סוגי מדיניות והשלכות השימוש, אפשר לעיין במאמר בנושא סוגי מדיניות.

משאב של מכשיר לאיסוף נתונים

כדי להשתמש במדיניות DataCapture, צריך קודם ליצור משאב data collector. הוראות ליצירת משאב של כלי לאיסוף נתונים באמצעות ממשק המשתמש של Apigee או Apigee API מופיעות במאמר יצירת כלי לאיסוף נתונים.

<DataCapture>

רכיב <DataCapture> מגדיר מדיניות DataCapture.

<DataCapture async="true" continueOnError="true" enabled="true" name="DC">

דוגמה למדיניות DataCapture:

<DataCapture name="DC-1">
    <Capture>
        <DataCollector>dc_data_collector</DataCollector>
        <Collect ref="my_data_variable" />
    </Capture>
</DataCapture>

האלמנט הראשי של מדיניות DataCapture הוא האלמנט <Capture>, שמציין את האמצעים לאיסוף הנתונים. יש לו שני רכיבי צאצא נדרשים:

בדוגמה הפשוטה הזו, הנתונים מחולצים ממשתנה בשם my_data_variable, שנוצר במקום אחר בשרת ה-proxy. המשתנה מצוין באמצעות המאפיין ref.

רכיב <Collect> מספק גם כמה דרכים אחרות לאיסוף נתונים ממקורות שונים באמצעות רכיבי הצאצא שלו. דוגמאות נוספות לאיסוף נתונים באמצעות מדיניות DataCapture זמינות במאמר דוגמאות.

לרכיב DataCapture יש את התחביר הבא.

<DataCapture name="capturepayment" continueOnError="false" enabled="true"> 
  <DisplayName>Data-Capture-Policy-1</DisplayName>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <ThrowExceptionOnLimit>false</ThrowExceptionOnLimit>

  <!-- Existing Variable -->
  <Capture>
    <Collect ref="existing-variable" default="0"></Collect>
    <DataCollector>dc_1</DataCollector>
  </Capture>

  <!-- JSONPayload -->
  <Capture>
    <DataCollector>dc_2</DataCollector>
    <Collect default="0">
      <Source>request</Source>
      <JSONPayload>
        <JSONPath>result.var</JSONPath>
      </JSONPayload>
    </Collect>
  </Capture>

  <!-- URIPath -->
  <Capture>
    <DataCollector>dc_3</DataCollector>
    <Collect default="0">
      <URIPath>
        <!-- All patterns must specify a single variable to extract named $ -->
        <Pattern ignoreCase="false">/foo/{$}</Pattern>
        <Pattern ignoreCase="false">/foo/bar/{$}</Pattern>
      </URIPath>
    </Collect>
  </Capture>
</DataCapture>

לרכיב הזה יש את המאפיינים הבאים שמשותפים לכל המדיניות:

מאפיין ברירת מחדל חובה? תיאור
name לא רלוונטי חובה

השם הפנימי של המדיניות. הערך של מאפיין name יכול להכיל אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך הזה לא יכול להיות ארוך מ-255 תווים.

אפשר להשתמש ברכיב <DisplayName> כדי לתת למדיניות תווית בשם אחר בשפה טבעית בכלי לעריכת פרוקסי בממשק המשתמש לניהול.

continueOnError FALSE אופציונלי מגדירים את הערך false כדי להחזיר שגיאה אם המדיניות נכשלת. זו התנהגות צפויה ברוב המקרים. הגדרה ל-true מאפשרת להמשיך את הביצוע של התהליך גם אחרי שמדיניות נכשלת. מאמרים קשורים:
enabled TRUE אופציונלי מגדירים את הערך true כדי לאכוף את המדיניות, או את הערך false כדי להשבית את המדיניות. המדיניות לא נאכפת גם אם היא עדיין משויכת לזרימה.
async   FALSE הוצא משימוש המאפיין הזה הוצא משימוש.

בטבלה הבאה מופיע תיאור כללי של רכיבי המשנה של <DataCapture>.

רכיב צאצא חובה תיאור
<Capture> חובה התג הזה מתעד את הנתונים של משתנה שצוין.

דוגמאות

בדוגמאות הבאות מוסברות דרכים שונות לשימוש במדיניות DataCapture.

איסוף נתונים למשתנה מובנה

בדוגמת הקוד שבהמשך מוצג איך לתעד נתונים של משתנה מובנה, message.content, שמכיל את התוכן של הבקשה, התשובה או הודעת השגיאה. מידע נוסף על משתנים מובנים זמין במאמר משתני זרימה.

<DataCapture name="DC-FullMessage">
    <Capture>
        <DataCollector>dc_data_collector</DataCollector>
        <Collect ref="message.content" />
    </Capture>
</DataCapture>

בדוגמה של הקוד שלמעלה, המאפיין ref של הרכיב </Collect> מציין את המשתנה שצריך לתעד, שבמקרה הזה נקרא "message.content".

הדוגמה מתעדת את הנתונים באמצעות רכיב <Capture>, שמכיל גם רכיב <DataCollector> שמציין את השם של משאב איסוף הנתונים.

איסוף נתונים בתוך השורה

בדוגמה הבאה אפשר לראות איך לוכדים נתונים בתוך השורה באמצעות <JSONPayload>, רכיב משני של הרכיב <Collect>.

<DataCapture name="DC-Currency">
    <Capture>
        <DataCollector>dc_data_collector<DataCollector>
        <Collect>
            <JSONPayload>
                <JSONPath>$.results[0].currency</JSONPath>
            </JSONPayload>
        </Collect>
    </Capture>
</DataCapture>

בדוגמה של הקוד שלמעלה:

  • רכיב <JSONPayload> מציין את ההודעה בפורמט JSON שממנה נחצה הערך של המשתנה.
  • רכיב <JSONPath> מציין את נתיב ה-JSON שמשמש לחילוץ הערך מההודעה, שבמקרה הזה הוא $.results[0].currency.

לדוגמה, נניח שהערך שחולץ בזמן קבלת ההודעה הוא 1120. אז הערך שיישלח ל-Analytics יהיה

{
    "dc_data_collector": "1120"
}

<Capture>

האלמנט <Capture> מציין את האמצעים ללכידת הנתונים.

<Capture />

בטבלה הבאה מופיע תיאור כללי של רכיבי המשנה של <Capture>.

רכיב צאצא חובה? תיאור
<DataCollector> חובה מציינים את משאב אוסף הנתונים.
<Collect> חובה מציין את האמצעים ללכידת נתונים.

<DataCollector>

רכיב <DataCollector> מציין את משאב איסוף הנתונים.

<DataCollector>dc_data_collector</DataCollector>
בטבלה הבאה מפורטים המאפיינים של רכיב <DataCollector>.
מאפיין תיאור ברירת מחדל חובה? סוג
היקף

כדי לתעד את משתני המונטיזציה, צריך לציין את המאפיין הזה ולהגדיר את הערך שלו ל-monetization. מידע נוסף על משתני המונטיזציה שאפשר לתעד זמין במאמר תיעוד נתוני מונטיזציה.

לא רלוונטי אופציונלי String

גוף הרכיב <DataCollector> מכיל את השם של משאב איסוף הנתונים.

<Collect>

האלמנט <Collect> מציין את האמצעים ללכידת נתונים.

<Collect ref="existing-variable" default="0"/>

בטבלה הבאה מתוארים המאפיינים של הרכיב <Collect>.

מאפיין תיאור ברירת מחדל חובה? סוג
ref

המשתנה שעבורו מתבצעת לכידת נתונים.

לא רלוונטי אופציונלי – אם לא מציינים את ref, צריך לציין בדיוק אחד מהערכים הבאים: QueryParam, Header, FormParam, URIPath, JSONPayload או XMLPayload. String
ברירת מחדל מציינים את הערך שנשלח אל Analytics אם ערך המשתנה לא מאוכלס בזמן הריצה. לדוגמה, אם מגדירים default="0", הערך שנשלח אל Analytics יהיה 0. אם לא מציינים את הערך של default, והערך של המשתנה לא מאוכלס בזמן הריצה, הערך שנשלח אל Analytics הוא null למשתנה מספרי או "Not set" למשתנה מסוג מחרוזת. חובה String

אפשר לתעד את הנתונים מתוך משתנה קיים באמצעות המאפיין ref או באמצעות רכיבי צאצא <Collect>.

רכיבי צאצא של <Collect>

בטבלה הבאה מפורטים רכיבי המשנה של <Collect>:

רכיב צאצא חובה? תיאור
<Source> אופציונלי מציינת את המשתנה שיש לנתח.
<URIPath> אופציונלי מחלצת ערך מהמאפיין proxy.pathsuffix של הודעת מקור הבקשה.
<QueryParam> אופציונלי הפונקציה מחלצת ערך מפרמטר השאילתה שצוין בהודעת מקור הבקשה.
<Header> אופציונלי מחלצת ערך מכותרת HTTP שצוינה של בקשה או הודעת תגובה שצוינו.
<FormParam> אופציונלי מחלצת ערך מפרמטר הטופס שצוין בהודעת הבקשה או התגובה שצוינה.
<JSONPayload> אופציונלי מציין את ההודעה בפורמט JSON שממנה יחולץ ערך המשתנה.
<XMLPayload> אופציונלי מציינים את ההודעה בפורמט XML שממנה יחולץ ערך המשתנה.

<Source>

מציינים משתנה שכולל את שם ההודעה שיש לנתח. ערך ברירת המחדל של <Source> הוא message. הערך message תלוי בהקשר. בתהליך בקשה, message מייצג את הודעת הבקשה. בזרימת תגובה, message מייצג את הודעת התגובה.

אם לא ניתן לפתור את המשתנה שצוין ב-<Source>, או אם הוא נפתר כסוג שאינו הודעה, המדיניות לא תגיב.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <Collect>
רכיבי צאצא לא רלוונטי
<Source >request</Source>

<URIPath>

מחזירה ערך מproxy.pathsuffix של הודעת מקור מסוג request. הנתיב שחל על התבנית הוא proxy.pathsuffix, שלא כולל את נתיב הבסיס של שרת ה-API הפרוקסי. אם ההודעה המקורית היא מסוג response, האלמנט לא עושה כלום.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <Pattern>

מאפיינים

מאפיין תיאור ברירת מחדל חובה? סוג
ignoreCase הגדרה שמתעלמת מאותיות רישיות כשמתאימים את התבנית.

FALSE

אופציונלי בוליאני
<Collect>
    <URIPath>
        <Pattern ignoreCase="false">/foo/{$}</Pattern>
    </URIPath>
</Collect>

אפשר להשתמש בכמה רכיבי <Pattern>:

<URIPath>
   <Pattern ignoreCase="false">/foo/{$}</Pattern>
   <Pattern ignoreCase="false">/foo/bar/{$}</Pattern>
</URIPath>

<QueryParam>

מחלצת ערך מפרמטר השאילתה שצוין של הודעת מקור request. אם ההודעה המקורית היא מסוג הודעה response, האלמנט לא עושה כלום.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <Pattern>

מאפיינים

מאפיין תיאור ברירת מחדל חובה? סוג
name מציינת את השם של פרמטר השאילתה. אם לכמה פרמטרים של שאילתה יש את אותו שם, צריך להשתמש בהפניה עם אינדקס. המופע הראשון של פרמטר השאילתה לא מקבל אינדקס, המופע השני מקבל אינדקס 2, המופע השלישי מקבל אינדקס 3 וכן הלאה.

לא רלוונטי

חובה String
<Collect>
    <QueryParam name="code">
        <Pattern ignoreCase="true">{$}</Pattern>
    </QueryParam>
</Collect>

אם לכמה פרמטרים של שאילתה יש את אותו שם, צריך להשתמש באינדקסים כדי להפנות לפרמטרים:

<Collect>
    <QueryParam name="code.2">
        <Pattern ignoreCase="true">{$}</Pattern>
    </QueryParam>
</Collect>

הערה: צריך לציין משתנה יחיד בשם {$}. יכולים להיות כמה רכיבי Pattern ייחודיים, אבל הדפוס הראשון שתואם לבקשה מסוימת יקבע את התוצאה.

<Header>

הפונקציה מחלצת ערך מכותרת ה-HTTP שצוינה של ההודעה request או response שצוינה. אם לכמה כותרות יש את אותו שם, הערכים שלהן מאוחסנים במערך.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <Pattern>

מאפיינים

מאפיין תיאור ברירת מחדל חובה? סוג
name מציינים את שם הכותרת שממנה רוצים לחלץ את הערך. אם לכמה כותרות יש את אותו שם, צריך להשתמש בהפניה עם אינדקס. המופע הראשון של הכותרת לא מקבל אינדקס, המופע השני מקבל אינדקס 2, המופע השלישי מקבל אינדקס 3 וכן הלאה. אפשר להשתמש ב-.values כדי לקבל את כל הכותרות במערך.

לא רלוונטי

חובה String
<Collect>
    <Header name="my_header">
        <Pattern ignoreCase="false">Bearer {$}</Pattern>
    </Header>
</Collect>

אם לכמה כותרות יש את אותו שם, צריך להשתמש באינדקסים כדי להפנות לכותרות ספציפיות במערך:

<Collect>
    <Header name="my_header.2">
        <Pattern ignoreCase="true">{$}</Pattern>
    </Header>
</Collect>

או את הפקודה הבאה כדי להציג רשימה של כל הכותרות במערך:

<Collect>
    <Header name="my_header.values">
        <Pattern ignoreCase="true">{$}</Pattern>
    </Header>
</Collect>

<FormParam>

מחלצת ערך מפרמטר הטופס שצוין בהודעה request או response שצוינה. אפשר לחלץ פרמטרים של טופס רק אם הכותרת Content-Type של ההודעה שצוינה היא application/x-www-form-urlencoded.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <Pattern>

מאפיינים

מאפיין תיאור ברירת מחדל חובה? סוג
name שם הפרמטר של הטופס שממנו מחלצים את הערך.

לא רלוונטי

אופציונלי String
<Collect>
    <FormParam name="greeting">
        <Pattern>hello {$}</Pattern>
    </FormParam>
</Collect>

<JSONPayload>

מציין את ההודעה בפורמט JSON שממנה יחולץ ערך המשתנה. חילוץ JSON מתבצע רק כשהכותרת של Content-Type ההודעה היא application/json.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <JSONPath>
<Collect>
    <JSONPayload>
        <JSONPath>$.results[0].currency</JSONPath>
    </JSONPayload>
</Collect>

<JSONPath>

רכיב צאצא נדרש של הרכיב <JSONPayload>. מציין את נתיב ה-JSON שמשמש לחילוץ ערך מהודעה בפורמט JSON.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג String
רכיב אב <JSONPayload>
רכיבי צאצא לא רלוונטי
<JSONPath>$.rss.channel.title</JSONPath>

<XMLPayload>

מציין את ההודעה בפורמט XML שממנה יחולץ ערך המשתנה. מטענים ייעודיים (payloads) בפורמט XML מחולצים רק כשהכותרת Content-Type של ההודעה היא text/xml,‏ application/xml או application/*+xml.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג רמה למתקדמים מאוד
רכיב אב <Collect>
רכיבי צאצא <Namespaces>
<XPath>

בטבלה הבאה מופיע תיאור כללי של רכיבי המשנה של <XMLPayload>.

רכיב צאצא חובה? תיאור
<Namespaces> אופציונלי מציינים אפס או יותר מרחבי שמות לשימוש בהערכת ה-XPath.
<XPath> חובה מציינים את ה-XPath שהוגדר למשתנה.
<Collect>
    <XMLPayload>
        <Namespaces>
            <Namespace prefix="soap">http://schemas.xmlsoap.org/soap/envelope/</Namespace>
            <Namespace prefix="ns1">http://ns1.example.com/operations</Namespace>
        </Namespaces>
        <!-- get the local name of the SOAP operation -->
        <XPath>local-name(/soap:Envelope/soap:Body/ns1:*[1])</XPath>
    </XMLPayload>
</Collect>

<Namespaces>

מציין את קבוצת מרחבי השמות שאפשר להשתמש בהם בביטוי XPath. דוגמה.

<Collect>
    <XMLPayload>
        <Namespaces>
            <Namespace prefix="maps">http://maps.example.com</Namespace>
            <Namespace prefix="places">http://places.example.com</Namespace>
        </Namespaces>
        <XPath>/maps:Directions/maps:route/maps:leg/maps:endpoint/places:name</XPath>
    </XMLPayload>
</Collect>

אם אתם לא משתמשים במרחבי שמות בביטויי XPath, אתם יכולים להשמיט את הרכיב <Namespaces> או להוסיף לו הערה, כמו בדוגמה הבאה:

<Collect>
    <XMLPayload>
        <!-- <Namespaces/> -->
        <XPath>/Directions/route/leg/name</XPath>
    </XMLPayload>
</Collect>

<Namespace>

מציינים מרחב שמות אחד וקידומת תואמת לשימוש בביטוי XPath. דוגמה.

ערך ברירת המחדל לא רלוונטי
חובה? אופציונלי
סוג String
רכיב אב <Namespaces>
רכיבי צאצא לא רלוונטי

מאפיינים

מאפיין תיאור ברירת מחדל חובה? סוג
prefix

התחילית שמשמשת להפניה למרחב השמות בביטוי xpath. הקידומת הזו לא חייבת להיות זהה לקידומת שבה נעשה שימוש במסמך ה-XML המקורי.

לא רלוונטי

חובה String
<Collect>
    <XMLPayload>
        <Namespaces>
            <Namespace prefix="maps">http://maps.example.com</Namespace>
        </Namespaces>
        <XPath>/maps:Directions/maps:route/maps:leg/maps:endpoint</XPath>
    </XMLPayload>
</Collect>

<XPath>

רכיב צאצא נדרש של הרכיב XMLPayload. מציינים את ה-XPath שהוגדר למשתנה. יש תמיכה רק בביטויים של XPath 1.0.

ערך ברירת המחדל לא רלוונטי
חובה? חובה
סוג String
רכיב אב <XMLPayload>
רכיבי צאצא לא רלוונטי
   <XPath>/test/example</XPath>

הערה: אם משתמשים במרחבי שמות בביטויי XPath, צריך להצהיר על מרחבי השמות בקטע <XMLPayload><Namespaces> של המדיניות.

<ThrowExceptionOnLimit>

רכיב <ThrowExceptionOnLimit> מציין מה קורה כשמגיעים למגבלות הלכידה של מספר המשתנים או הגודל המקסימלי של משתנה. מידע נוסף על אכיפת מגבלות על צילום מסך

הערך של <ThrowExceptionOnLimit> יכול להיות אחד מהערכים הבאים:

  • false: הנתונים של המשתנים נשלחים אל Analytics.
  • true: מוחזרת הודעת שגיאה, והנתונים לא נשלחים אל Analytics.

הפניה לשגיאה

שגיאות זמן ריצה

בטבלה הבאה מתוארות שגיאות זמן ריצה, שיכולות להתרחש כשהמדיניות מופעלת.

קוד תקלה מטרה
DataCollectorTypeMismatch

הערך שצריך לתעד לא תואם לסוג DataCollector.

ExtractionFailure חילוץ הנתונים נכשל.
UnresolvedVariable המשתנה לא קיים.
VariableCountLimitExceeded מספר המשתנים שתועדו חרג מהמגבלה של 100 משתנים
VariableValueLimitExceeded הגודל של ערך שתועד חרג מהמגבלה של 400 בייטים למשתנה יחיד.
MsgContentParsingFailed ניתוח תוכן ההודעה ל-XML או ל-JSON נכשל.
InvalidMsgContentType סוג התוכן של ההודעה לא תואם לסוג התוכן הצפוי של ההודעה בסעיף מדיניות איסוף הנתונים.
NonMsgVariable הערך של רכיב <Source> לא הפנה למשתנה של הודעה.
JSONPathQueryFailed השאילתה JSONPath לא הצליחה להחזיר ערך.
PrivateVariableAccess הניסיון לגשת למשתנה פרטי נכשל.
XPathEvaluationFailed לא הצלחנו לפענח את XPath לערך.

שגיאות זמן ריצה מוחזרות בשתי דרכים:

  • תגובת שגיאה בחזרה ללקוח (continueOnError=false)

    כשהמאפיין continueOnError של המדיניות מוגדר ל-false, שגיאות שמתרחשות במהלך הפעלת המדיניות יגרמו להפסקת עיבוד ההודעה ולהחזרת הודעת שגיאה תיאורית. המדיניות תנסה לתעד את כל השגיאות הרלוונטיות במדיניות איסוף הנתונים לפני החזרת ההודעה.

  • DataCapture שדה שגיאות ב-Analytics

    השדה dataCapturePolicyErrors מכיל רשימה של כל השגיאות שהתרחשו. דוגמה לאופן שבו זה יופיע במפת הנתונים של Analytics מוצגת בהמשך:

    # Example payload
    [
         {
             errorType: TypeMismatch,
             policyName: MyDataCapturePolicy-1,
             dataCollector: purchaseValue
         },
         {
             errorType: MaxValueSizeLimitReached,
             policyName: MyDataCapturePolicy-1,
             dataCollector: purchasedItems
         },
    ]

השדה הזה כפוף למגבלת הגודל של משתנים, שהיא 400 בייטים.

שגיאות בהטמעה

קוד תקלה מטרה
DeploymentAssertionError לא נמצא DataCollector שהמדיניות מפנה אליו בארגון במהלך הפריסה.
JsonPathCompilationFailed הקומפילציה עם JSONPath שצוין נכשלה.
XPathCompilationFailed אם הקידומת או הערך שמשמשים ברכיב XPath לא שייכים לאף אחד ממרחבי השמות שהוגדרו במדיניות, הפריסה של proxy ל-API תיכשל.
PatternCompilationFailed הקומפילציה של התבנית נכשלה.

איתור שגיאות DataCapture בכלי לניפוי באגים

המשתנה dataCapturePolicyErrors זמין בכלי לניפוי באגים. זהו כלי נוסף שבו אפשר להשתמש כדי לזהות שגיאות בלי להיכנס ל-Analytics. לדוגמה, אפשר לזהות שגיאה שמתרחשת אם משדרגים את הגרסה של זמן הריצה ההיברידי ומשבשים בטעות את הניתוח בשרת proxy שכבר נפרס.

אכיפה של מגבלות על לכידת נתונים

מערכת Apigee אוכפת את המגבלות הבאות על משתנים בנתונים שנאספים:

  • מספר המשתנים המותר הוא 100.
  • הגודל המקסימלי של כל משתנה (כולל ערכי רשימה) הוא 400 בייטים.

כשמפעילים את מדיניות איסוף הנתונים, לפני שמוסיפים ערך למיפוי איסוף הנתונים בהקשר של ההודעה:

  • אם הגעתם למגבלה על מספר המשתנים, המשתנה החדש יוסר.
  • אם הגעתם למגבלה על גודל המשתנים, הערך יקוצץ כדי להתאים למגבלות הרצויות.

בשני המקרים:

  • הודעת ניפוי באגים תתועד ביומן של מעבד ההודעות.
  • הודעת השגיאה limit reached תצורף ל-dataCapturePolicyErrors, והיא תהיה זמינה גם ב-Analytics וגם בכלי הניפוי באגים. הערה: רק הודעת שגיאה אחת על הגעה למספר המקסימלי של משתנים מותרים תצורף.
  • אם הערך של <ThrowExceptionOnLimit> הוא true, הנתונים לא נשלחים אל Analytics ובמקום זאת מוחזרת שגיאה ללקוח.

נושאים קשורים