מדיניות DataCapture

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

המאמר הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

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

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

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

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

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

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

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

שגיאות פריסה

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

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

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

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

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

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

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

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

בשני המקרים:

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

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