واجهات برمجة التطبيقات الأساسية
تعمل واجهات برمجة التطبيقات هذه مع لغة JavaScript في وضع الحماية لإنشاء نماذج مخصّصة في أداة "إدارة العلامات من Google". تتم إضافة كل واجهة برمجة تطبيقات باستخدام عبارة require()
، على سبيل المثال:
const myAPI = require('myAPI');
addConsentListener
تسجّل هذه السمة دالة معالجة حدث ليتم تنفيذها عند تغيُّر حالة نوع الموافقة المحدّد.
سيتم استدعاء أداة معالجة الأحداث المحدّدة في كل مرة تتغيّر فيها حالة نوع الموافقة المحدّد من "مرفوضة" إلى "ممنوحة" أو من "ممنوحة" إلى "مرفوضة". يُعدّ نوع الموافقة الذي لا يتضمّن حالة موافقة ممنوحًا، لذا لن يتم استدعاء أداة معالجة الأحداث إذا تم تعديل نوع موافقة غير مضبوط إلى ممنوح. ستكون دوال معالجة الأحداث مسؤولة عن ضمان تنفيذ الرمز البرمجي لعدد المرات المناسب.
مثال:
const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');
if (!isConsentGranted('ad_storage')) {
let wasCalled = false;
addConsentListener('ad_storage', (consentType, granted) => {
if (wasCalled) return;
wasCalled = true;
const cookies = getMyCookies();
sendFullPixel(cookies);
});
}
البنية
addConsentListener(consentType, listener)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
consentType |
string | نوع الموافقة الذي يجب الاستماع إلى تغييرات الحالة فيه. |
listener |
function | الدالة التي سيتم تنفيذها عند تغيُّر حالة نوع الموافقة المحدّد. |
عند استدعاء معالج الأحداث، سيتم تمرير نوع الموافقة الذي يتم تغييره والقيمة الجديدة لنوع الموافقة هذا:
المَعلمة | النوع | الوصف |
---|---|---|
consentType |
string | نوع الموافقة الذي يتم تغييره. |
granted |
boolean | قيمة منطقية تكون صحيحة إذا كان نوع الموافقة المحدّد سيتم تغييره إلى "تم منح الموافقة". |
الأذونات المرتبطة
إذن access_consent
مع إذن الوصول للقراءة لنوع الموافقة
addEventCallback
تتيح لك واجهة برمجة التطبيقات addEventCallback
تسجيل دالة رد اتصال سيتم استدعاؤها في نهاية حدث معيّن. سيتم استدعاء دالة الرجوع عند تنفيذ جميع العلامات الخاصة بالحدث، أو عند بلوغ مهلة الحدث داخل الصفحة.
يتم تمرير قيمتين إلى دالة الاستدعاء، وهما معرّف الحاوية التي تستدعي الدالة وكائن يحتوي على معلومات حول الحدث.
البنية
addEventCallback(callback)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
callback |
function | الدالة التي سيتم استدعاؤها في نهاية الحدث |
يحتوي العنصر eventData
على البيانات التالية:
اسم المفتاح | النوع | الوصف |
---|---|---|
tags |
المصفوفة | مصفوفة من عناصر بيانات العلامات سيتضمّن هذا الصفيف إدخالاً لكل علامة تم تشغيلها أثناء الحدث. يحتوي عنصر بيانات العلامة على معرّف العلامة (id ) وحالة تنفيذها (status ) ووقت تنفيذها (executionTime ). ستتضمّن بيانات العلامة أيضًا بيانات وصفية إضافية تم ضبطها على العلامة. |
مثال
addEventCallback(function(ctid, eventData) {
logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});
الأذونات المرتبطة
aliasInWindow
تتيح لك واجهة برمجة التطبيقات aliasInWindow
إنشاء اسم مستعار (مثل window.foo =
window.bar
)، ما يساعد في دعم بعض العلامات التي تتطلّب استخدام أسماء مستعارة. تُعيِّن هذه الدالة قيمة الكائن window
الذي تم العثور عليه في fromPath
إلى المفتاح في الكائن window
في toPath
. تعرض الدالة true
في حال النجاح، أو false
في حال عدم النجاح.
البنية
aliasInWindow(toPath, fromPath)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
toPath |
string | مسار مفصول بنقاط إلى العنصر window حيث يجب نسخ قيمة إليه. يجب أن تكون جميع المكوّنات في المسار حتى المكوّن الأخير متوفّرة في عنصر window . |
fromPath |
string | مسار مفصول بنقاط إلى window للقيمة التي تريد نسخها إذا لم تكن القيمة متوفّرة، ستفشل العملية. |
مثال
aliasInWindow('foo.bar', 'baz.qux')
الأذونات المرتبطة
يجب توفُّر إذن access_globals
لكل من toPath
وfromPath
، إذ يتطلّب toPath
إذن الكتابة، بينما يتطلّب fromPath
إذن القراءة.
callInWindow
تسمح لك هذه السمة باستدعاء الدوال من مسار خارج عنصر window
، بطريقة تخضع للسياسة. تستدعي الدالة في المسار المحدّد في window
باستخدام الوسيطات المحدّدة وتعرض القيمة. إذا تعذّر ربط نوع الإرجاع مباشرةً بنوع متوافق مع JavaScript في وضع الحماية، سيتم عرض القيمة undefined
. تشمل الأنواع الثمانية المتوافقة مع JavaScript في وضع الحماية null
وundefined
وboolean
وnumber
وstring
وArray
وObject
وfunction
. إذا لم يكن المسار المحدّد متوفّرًا أو لم يكن يشير إلى دالة، سيتم عرض undefined
.
البنية
callInWindow(pathToFunction, argument [, argument2,... argumentN])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
pathToFunction |
string | مسار مفصول بنقاط إلى الدالة في window التي سيتم استدعاؤها. |
args |
* | الوسيطات التي سيتم تمريرها إلى الدالة. |
الأذونات المرتبطة
access_globals
مع تفعيل إذن execute
callLater
تحديد موعد لتنفيذ دالة بشكل غير متزامن سيتم استدعاء الدالة بعد أن يعرض الرمز الحالي. وهذا يعادل
setTimeout(<function>, 0)
.
البنية
callLater(function)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
function |
function | الدالة التي سيتم استدعاؤها. |
copyFromDataLayer
تعرض هذه الدالة القيمة المعيّنة حاليًا للمفتاح المحدّد في طبقة البيانات: القيمة التي تم العثور عليها في المفتاح المحدّد إذا كان نوعًا أساسيًا أو دالة أو قيمة حرفية لكائن، أو undefined
بخلاف ذلك.
البنية
copyFromDataLayer(key[, dataLayerVersion])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
key |
string | المفتاح بالتنسيق "أ.ب.ج". |
dataLayerVersion |
number | تمثّل هذه السمة إصدار طبقة البيانات الاختياري. والقيمة الافتراضية هي 2. ننصحك بشدة بعدم استخدام القيمة 1. |
الأذونات المرتبطة
copyFromWindow
تنسخ هذه الدالة متغيّرًا من العنصر window
. إذا تعذّر ربط القيمة في window
مباشرةً بنوع متوافق مع JavaScript في وضع الحماية، سيتم عرض undefined
. تشمل الأنواع الثمانية المتوافقة مع JavaScript في وضع الحماية null
وundefined
وboolean
وnumber
وstring
وArray
وObject
وfunction
.
تعرض هذه الدالة القيمة التي تم جلبها (وتحويلها).
البنية
copyFromWindow(key)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
key |
string | المفتاح في window لنسخ القيمة. |
الأذونات المرتبطة
createArgumentsQueue
تنشئ هذه السمة قائمة انتظار يتم ملؤها بعناصر وسيطة، وذلك لدعم حلول العلامات التي تتطلّب ذلك.
تنشئ هذه الطريقة دالة في النطاق العام (أي window
)، باستخدام الوسيطة fnKey
(وهي تتضمّن الدلالات نفسها التي تتضمّنها createQueue
). بعد إنشاء الدالة، تنشئ واجهة برمجة التطبيقات هذه بعد ذلك مصفوفة في window
(إذا لم تكن موجودة من قبل) باستخدام الوسيطة arrayKey
.
عند استدعاء الدالة التي تم إنشاؤها ضمن fnKey
، يتم دفع عنصر وسيطاتها إلى الصفيف الذي تم إنشاؤه ضمن arrayKey
. قيمة الإرجاع لواجهة برمجة التطبيقات هي الدالة التي تم إنشاؤها ضمن fnKey
.
تتطلّب هذه الوظيفة إعدادات القراءة والكتابة لكل من fnKey
وarrayKey
ضمن إذن access_globals
.
مثال:
const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});
البنية
createArgumentsQueue(fnKey, arrayKey)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
fnKey |
string | مسار window الذي تم ضبط الدالة فيه، إذا لم يكن موجودًا من قبل تتيح هذه الوسيطة استخدام التدوين النقطي العادي. إذا لم يكن مسار المفتاح متوفّرًا، سيتم عرض استثناء. أي أنّه إذا كانت قيمة fnKey هي 'one.two' ، سيتم عرض استثناء. |
arrayKey |
string | المسار في window حيث يتم ضبط المصفوفة، إذا لم يكن
موجودًا من قبل. تتيح هذه الوسيطة استخدام التدوين النقطي العادي. إذا لم يكن مسار المفتاح متوفّرًا، سيتم عرض استثناء. أي أنّه إذا كان
arrayKey هو 'one.two' ، ولم يكن هناك
عنصر عام باسم 'one' ، سيتم عرض
استثناء. |
الأذونات المرتبطة
createQueue
تُنشئ هذه الدالة صفيفًا في window
(إذا لم يكن موجودًا من قبل) وتعرض دالة ستضيف قيمًا إلى هذا الصفيف.
تتطلّب هذه الوظيفة إعدادات القراءة والكتابة الخاصة بـ arrayKey
في إذن access_globals
.
مثال:
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
البنية
createQueue(arrayKey)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
arrayKey |
string | المفتاح في window حيث يتم ضبط المصفوفة، إذا لم يكن موجودًا من قبل. تتيح هذه الوسيطة استخدام التدوين النقطي العادي. إذا لم يكن مسار المفتاح متوفّرًا، سيتم عرض استثناء. على سبيل المثال، إذا كانت قيمة
arrayKey هي 'one.two' ، ولم يكن هناك
عنصر عام باسم 'one' ، سيحدث خطأ. |
الأذونات المرتبطة
decodeUri
يفكّ ترميز أي أحرف مرمّزة في معرّف الموارد المنتظم (URI) المقدَّم. تعرض هذه الدالة سلسلة تمثّل معرّف الموارد المنتظم (URI) الذي تم فك ترميزه. تعرض هذه الدالة undefined
عند تقديم إدخال غير صالح.
مثال:
const decode = require('decodeUri');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
البنية
decodeUri(encoded_uri)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
encoded_uri |
string | معرّف موارد موحّد تم ترميزه باستخدام
encodeUri()
أو بطرق أخرى. |
الأذونات المرتبطة
بلا عُري
decodeUriComponent
يفكّ ترميز أي أحرف مرمّزة في مكوّن معرّف الموارد المنتظم (URI) المقدَّم. تعرض هذه الدالة سلسلة تمثّل مكوّن معرّف الموارد المنتظم (URI) الذي تم فك ترميزه. تعرض undefined
عند تقديم إدخال غير صالح.
مثال:
const decode = require('decodeUriComponent');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
البنية
decodeUriComponent(encoded_uri_component)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
encoded_uri_component |
string | أحد عناصر معرّف الموارد المنتظم (URI) الذي تم ترميزه باستخدام
encodeUriComponent()
أو بوسائل أخرى. |
الأذونات المرتبطة
بلا عُري
encodeUri
تعرض هذه الدالة معرّف موارد منتظم (URI) مرمّزًا عن طريق إلغاء الأحرف الخاصة. تعرض سلسلة تمثّل السلسلة المقدَّمة التي تم ترميزها كمعرّف موارد منتظم (URI). تعرض undefined
عند تقديم إدخال غير صالح (بديل مستقل).
مثال:
sendPixel('https://www.example.com/' + encodeUri(pathInput));
البنية
encodeUri(uri)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
uri |
string | معرّف موارد منتظم كامل |
الأذونات المرتبطة
بلا عُري
encodeUriComponent
تعرض هذه الدالة معرّف موارد منتظم (URI) مرمّزًا عن طريق إلغاء الأحرف الخاصة. تعرض سلسلة تمثّل السلسلة المقدَّمة التي تم ترميزها كمعرّف موارد منتظم (URI). تعرض undefined
عند تقديم إدخال غير صالح (بديل مستقل).
مثال:
sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));
البنية
encodeUriComponent(str)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
str |
string | أحد مكوّنات معرّف الموارد المنتظم (URI) |
الأذونات المرتبطة
بلا عُري
fromBase64
تتيح لك واجهة برمجة التطبيقات fromBase64
فك ترميز السلاسل من تمثيلها بترميز base64. تعرض undefined
عند تقديم إدخال غير صالح.
البنية
fromBase64(base64EncodedString)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
base64EncodedString |
string | سلسلة مشفّرة باستخدام Base64 |
مثال
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
الأذونات المرتبطة
بدون
generateRandom
تعرض رقمًا عشوائيًا (عددًا صحيحًا) ضمن النطاق المحدّد.
البنية
generateRandom(min, max)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
min |
number | الحدّ الأدنى للقيمة المحتملة للعدد الصحيح المعروض |
max |
number | الحدّ الأقصى للقيمة المحتملة للعدد الصحيح الذي يتم عرضه |
الأذونات المرتبطة
بلا عُري
getContainerVersion
تعرض هذه السمة عنصرًا يحتوي على بيانات حول الحاوية الحالية. يحتوي العنصر الذي تم عرضه على الحقول التالية:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
مثال
const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');
if (query('read_container_data')) {
const cv = getContainerVersion();
const pixelUrl = 'https://pixel.com/' +
'?version=' + cv.version +
'&envName=' + cv.environmentName +
'&ctid=' + cv.containerId +
'&debugMode=' + cv.debugMode +
'&previewMode=' + cv.previewMode;
if (query('send_pixel', pixelUrl)) {
sendPixel(pixelUrl);
}
}
البنية
getContainerVersion();
الأذونات المرتبطة
getCookieValues
تعرِض قيم جميع ملفات تعريف الارتباط التي تحمل الاسم المحدّد.
البنية
getCookieValues(name[, decode])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
name |
string | تمثّل هذه السمة اسم ملف تعريف الارتباط. |
decode |
boolean | تتحكّم هذه السمة في ما إذا كان سيتم فك ترميز قيم ملفات تعريف الارتباط باستخدام
decodeURIComponent() في JavaScript. القيمة التلقائية هي
true . |
الأذونات المرتبطة
getQueryParameters
تعرض هذه الدالة المَعلمة الأولى أو جميع المَعلمات الخاصة بـ queryKey
لعنوان URL الحالي.
تعرض هذه الدالة القيمة الأولى من queryKey
أو مصفوفة من القيم من queryKey
.
البنية
getQueryParameters(queryKey[, retrieveAll])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
queryKey |
string | تمثّل هذه المَعلمة المفتاح المطلوب قراءته من مَعلمات طلب البحث. |
retrieveAll |
boolean | تحديد ما إذا كان سيتم استرداد جميع القيم. |
على سبيل المثال، إذا كان عنوان URL الحالي هو
https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
، إليك ما يجب فعله:
getQueryParameters('var') == 'foo'
getQueryParameters('var', false) == 'foo'
getQueryParameters('var', null) == 'foo'
getQueryParameters('var', true) == ['foo', 'foo2', 'foo']
الأذونات المرتبطة
يجب أن يسمح get_url
بالمكوّن query
، ويجب أن يحدّد queryKey
في مفاتيح طلبات البحث المسموح بها (أو يسمح بأي مفتاح طلب بحث).
getReferrerQueryParameters
تعمل واجهة برمجة التطبيقات getReferrerQueryParameters
بالطريقة نفسها التي تعمل بها getQueryParameters
،
إلا أنّها تعمل على صفحة الإحالة بدلاً من عنوان URL الحالي. تعرض هذه السمة المَعلمات الأولى أو كل المَعلمات الخاصة بـ queryKey
المُحيل المحدّد. تعرض هذه الدالة القيمة الأولى من queryKey
أو مصفوفة من القيم من queryKey
.
البنية
getReferrerQueryParameters(queryKey[, retrieveAll])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
queryKey |
string | تمثّل هذه المَعلمة المفتاح المطلوب قراءته من مَعلمات طلب البحث. |
retrieveAll |
boolean | تحديد ما إذا كان سيتم استرداد جميع القيم. |
على سبيل المثال، إذا كان عنوان URL الخاص بالموقع المُحيل هو
https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
، سيحدث ما يلي:
getReferrerQueryParameters('var') == 'foo'
getReferrerQueryParameters('var', false) == 'foo'
getReferrerQueryParameters('var', null) == 'foo'
getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']
الأذونات المرتبطة
يجب أن يسمح get_referrer
بالعنصر query
، ويجب تحديد queryKey
في مفاتيح طلبات البحث المسموح بها (أو السماح بأي مفتاح لطلب البحث).
getReferrerUrl
عند توفّر نوع مكوّن، تقرأ واجهة برمجة التطبيقات عنصر المستند الخاص بالمُحيل وتعرض سلسلة تمثّل جزءًا من المُحيل. إذا لم يتم تحديد أي مكوّن، سيتم عرض عنوان URL الكامل للمُحيل.
البنية
getReferrerUrl([component])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
component |
string | المكوّن الذي سيتم عرضه من عنوان URL يمكن أن تكون الحالة إحدى القيم التالية:
protocol أو host أو port
أو path أو query أو extension . إذا كانت قيمة component هي undefined أو null أو لا تتطابق مع أحد هذه المكوّنات، سيتم عرض عنوان URL بالكامل. |
الأذونات المرتبطة
يجب أن يسمح get_referrer
بالعنصر query
، ويجب تحديد queryKey
في مفاتيح طلبات البحث المسموح بها (أو السماح بأي مفتاح لطلب البحث).
getTimestamp
تمّت إزالة هذا العمود. يُفضّل استخدام getTimestampMillis.
تعرض هذه الدالة رقمًا يمثّل الوقت الحالي بالمللي ثانية منذ بداية حقبة Unix، كما تعرضه الدالة Date.now()
.
البنية
getTimestamp();
الأذونات المرتبطة
بلا عُري
getTimestampMillis
تعرض هذه الدالة رقمًا يمثّل الوقت الحالي بالمللي ثانية منذ بداية حقبة Unix، كما تعرضه الدالة Date.now()
.
البنية
getTimestampMillis();
الأذونات المرتبطة
بلا عُري
getType
تعرض هذه الدالة سلسلة تصف نوع القيمة المحدّدة. على عكس typeof
،
يميز getType
بين array
وobject
.
البنية
getType(data.someField)
ملاحظات
يسرد الجدول التالي السلاسل التي يتم عرضها لكل قيمة إدخال.
قيمة الإدخال | النتيجة |
---|---|
undefined |
'undefined' |
null |
'null' |
true |
'boolean' |
12 |
'number' |
'string' |
'string' |
{ a: 3 } |
'object' |
[ 1, 3 ] |
'array' |
(x) => x + 1 |
'function' |
الأذونات المرتبطة
بلا عُري
getUrl
تعرض هذه الدالة سلسلة تمثّل عنوان URL الحالي بالكامل أو جزءًا منه، وذلك استنادًا إلى نوع المكوّن وبعض مَعلمات الإعداد.
البنية
getUrl(component)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
component |
string | المكوّن الذي سيتم عرضه من عنوان URL يجب أن تكون إحدى القيم التالية:
protocol أو host أو port
أو path أو query أو extension
أو fragment . إذا كان المكوّن undefined أو null أو لم يكن مطابقًا لأي من هذه المكوّنات، سيتم عرض قيمة href بأكملها. |
الأذونات المرتبطة
gtagSet
يدفع أمر ضبط gtag إلى طبقة البيانات، ليتمّ معالجته في أقرب وقت ممكن بعد انتهاء الحدث الحالي وأي علامات تمّ تنشيطها (أو بعد انتهاء مهلة معالجة العلامات). يتم ضمان معالجة التعديل في هذا الحاوية قبل أي عناصر في قائمة انتظار طبقة البيانات.
على سبيل المثال، إذا تم استدعاؤها من خلال علامة تم تنشيطها عند إعداد الموافقة، سيتم تطبيق التعديل قبل معالجة حدث الإعداد. على سبيل المثال، يمكن ضبط ads_data_redaction
على true
أو false
أو ضبط url_passthrough
على true
أو false
.
أمثلة:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
البنية
gtagSet(object)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
Object |
object | عنصر يعدّل الحالة العامة للسمات التي يتضمّنها. |
الأذونات المرتبطة
تتحقّق write_data_layer
من إذن الكتابة إلى dataLayer
لجميع المفاتيح المحدّدة. إذا كان الإدخال إلى gtagSet
عبارة عن عنصر عادي، ستتحقّق واجهة برمجة التطبيقات من إذن الكتابة لجميع المفاتيح المسطّحة داخل هذا العنصر، مثلاً بالنسبة إلى gtagSet({foo: {bar: 'baz'}})
، ستتحقّق واجهة برمجة التطبيقات من إذن الكتابة إلى foo.bar
.
إذا كان الإدخال إلى gtagSet
هو مفتاح وبعض قيم الكائنات غير العادية، ستتحقّق واجهة برمجة التطبيقات من إذن الكتابة إلى هذا المفتاح، مثلاً بالنسبة إلى gtagSet('abc', true)
، ستتحقّق واجهة برمجة التطبيقات من إذن الكتابة إلى 'abc'
.
يُرجى العِلم أنّه إذا كانت هناك دورة في العنصر المُدخَل، سيتم التحقّق من المفاتيح فقط قبل الوصول إلى العنصر نفسه.
injectHiddenIframe
تضيف هذه السمة إطار iframe غير مرئي إلى الصفحة.
يتم تقديم عمليات رد الاتصال كأمثلة للدوال، ويتم تضمينها في دوال JavaScript التي تستدعيها.
البنية
injectHiddenIframe(url, onSuccess)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
url |
string | عنوان URL الذي سيتم استخدامه كقيمة للسمة src في إطار iframe. |
onSuccess |
function | يتم استدعاء هذه الطريقة عند تحميل الإطار بنجاح. |
الأذونات المرتبطة
injectScript
تضيف هذه السمة علامة نص برمجي إلى الصفحة لتحميل عنوان URL المحدّد بشكل غير متزامن. يتم تقديم عمليات معاودة الاتصال كأمثلة للدوال، ويتم تضمينها في دوال JavaScript التي تستدعيها.
البنية
injectScript(url, onSuccess, onFailure[, cacheToken])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
url |
string | عنوان النص البرمجي الذي سيتم إدراجه |
onSuccess |
function | يتم استدعاء هذه الطريقة عند تحميل النص البرمجي بنجاح. |
onFailure |
function | يتم استدعاء هذه الدالة عندما يتعذّر تحميل النص البرمجي. |
cacheToken |
string | سلسلة اختيارية تُستخدَم للإشارة إلى أنّه يجب تخزين عنوان URL المحدّد مؤقتًا. في حال تحديد هذه القيمة، سيتم إنشاء عنصر نص برمجي واحد فقط لطلب JavaScript. وستؤدي أي محاولات إضافية للتحميل إلى وضع الطريقتَين onSuccess وonFailure في قائمة الانتظار إلى أن يتم تحميل النص البرمجي. |
الأذونات المرتبطة
isConsentGranted
تعرِض القيمة "صحيح" إذا تم منح نوع الموافقة المحدّد.
تُعتبر الموافقة على نوع موافقة معيّن ممنوحة إذا تم ضبط نوع الموافقة على "ممنوحة" أو لم يتم ضبطه على الإطلاق. إذا تم ضبط نوع الموافقة على أي قيمة أخرى، سيتم اعتبار أنّه لم يتم منح الموافقة.
ستوفّر واجهة مستخدم "إدارة العلامات من Google" لإعدادات العلامات خيار التنشيط دائمًا. إذا كانت علامة تم تفعيل خيار "التشغيل دائمًا" فيها تستخدم واجهة برمجة التطبيقات هذه، سيتم اعتبار الموافقة
ممنوحة وسيتم عرض true
، بغض النظر عن الحالة الفعلية للموافقة.
مثال:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
البنية
isConsentGranted(consentType)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
consentType |
string | نوع الموافقة المطلوب التحقّق من حالته. |
الأذونات المرتبطة
إذن access_consent
مع إذن الوصول للقراءة لنوع الموافقة
JSON
تعرض هذه الدالة عنصرًا يوفّر دوال JSON.
تعمل الدالة parse()
على تحليل سلسلة JSON لإنشاء القيمة أو العنصر الموصوفَين بالسلسلة. إذا تعذّر تحليل القيمة (مثل JSON غير صالح)، ستعرض الدالة undefined
. إذا لم تكن قيمة الإدخال سلسلة، سيتم تحويل الإدخال إلى سلسلة.
تحوّل الدالة stringify()
الإدخال إلى سلسلة JSON. إذا تعذّر تحليل القيمة (على سبيل المثال، إذا كان العنصر يتضمّن حلقة)، ستعرض الطريقة undefined
.
البنية
JSON.parse(stringInput)
JSON.stringify(value);
المعلّمات
JSON.parse
المَعلمة | النوع | الوصف |
---|---|---|
stringInput | أي | القيمة المطلوب تحويلها. إذا لم تكن القيمة سلسلة، سيتم تحويل الإدخال إلى سلسلة. |
JSON.stringify
المَعلمة | النوع | الوصف |
---|---|---|
القيمة | أي | القيمة المطلوب تحويلها. |
مثال
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
localStorage
تعرض هذه السمة عنصرًا يتضمّن طرقًا للوصول إلى مساحة التخزين المحلية.
البنية
const localStorage = require('localStorage');
// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);
// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);
// Requires write access for the key.
localStorage.removeItem(key);
الأذونات المرتبطة
مثال
const localStorage = require('localStorage');
if (localStorage) {
const value = localStorage.getItem('my_key');
if (value) {
const success = localStorage.setItem('my_key', 'new_value');
if (success) {
localStorage.removeItem('my_key');
}
}
}
logToConsole
تسجيل الوسيطات في وحدة تحكّم المتصفّح
البنية
logToConsole(obj1 [, obj2,... objN])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
obj1 [, obj2,... objN] |
أي | الوسيطات |
الأذونات المرتبطة
makeInteger
تحويل القيمة المحدّدة إلى رقم (عدد صحيح).
البنية
makeInteger(value)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
value |
أي | القيمة المطلوب تحويلها. |
الأذونات المرتبطة
بلا عُري
makeNumber
تحويل القيمة المحدّدة إلى رقم
البنية
makeNumber(value)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
value |
أي | القيمة المطلوب تحويلها. |
الأذونات المرتبطة
بلا عُري
makeString
تعرض القيمة المحدّدة كسلسلة.
البنية
makeString(value)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
value |
أي | القيمة المطلوب تحويلها. |
الأذونات المرتبطة
بلا عُري
makeTableMap
تحويل عنصر جدول بسيط يحتوي على عمودَين إلى Map
يُستخدَم هذا الإجراء لتغيير حقل نموذج SIMPLE_TABLE
يتضمّن عمودَين إلى تنسيق أسهل في الإدارة.
على سبيل المثال، يمكن أن تحوّل هذه الدالة عنصر جدول:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
إلى خريطة:
{
'k1': 'v1',
'k2': 'v2'
}
تعرض هذه الطريقة كائنًا: Map
المحوَّل إذا تمت إضافة أزواج المفتاح/القيمة إليه، أو null
بخلاف ذلك.
البنية
makeTableMap(tableObj, keyColumnName, valueColumnName)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
tableObj |
القائمة | عنصر الجدول المطلوب تحويله. وهي عبارة عن قائمة خرائط يمثل كل Map فيها صفًا في الجدول. يمثّل كل اسم سمة في كائن صف اسم العمود، وتمثّل قيمة السمة قيمة العمود في الصف. |
keyColumnName |
string | اسم العمود الذي ستصبح قيمه مفاتيح في Map المحوَّل. |
valueColumnName |
string | اسم العمود الذي ستصبح قيمه قيمًا في Map المحوَّلة. |
الأذونات المرتبطة
بلا عُري
Math
عنصر يوفّر وظائف Math
البنية
const Math = require('Math');
// Retrieve the absolute value.
const absolute = Math.abs(-3);
// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);
// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);
// Round the input to the nearest integer.
const rounded = Math.round(3.1);
// Return the largest argument.
const biggest = Math.max(1, 3);
// Return the smallest argument.
const smallest = Math.min(3, 5);
// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);
// Return the square root of the argument.
const unsquared = Math.sqrt(9);
المعلّمات
يتم تحويل مَعلمات الدوال الرياضية إلى أرقام.
الأذونات المرتبطة
بلا عُري
Object
تعرض هذه السمة عنصرًا يوفّر طرق Object
.
توفّر الطريقة keys()
سلوك Object.keys() في "المكتبة العادية". تعرض هذه الطريقة مصفوفة بأسماء السمات القابلة للتعداد الخاصة بكائن معيّن، وذلك بالترتيب نفسه الذي تعرضه حلقة for...in...
. إذا كانت قيمة الإدخال ليست عنصرًا، سيتم تحويلها إلى عنصر.
توفّر الطريقة values()
سلوك Object.values() في المكتبة العادية. تعرض هذه الطريقة صفيفًا من قيم السمات القابلة للتعداد الخاصة بكائن معيّن
بالترتيب نفسه الذي تعرضه حلقة for...in...
. إذا لم تكن قيمة الإدخال كائنًا، سيتم تحويلها إلى كائن.
توفّر الطريقة entries()
سلوك Object.entries() في "المكتبة العادية". تعرض هذه الطريقة مصفوفة من أزواج [key, value]
وسمات قابلة للتعداد خاصة بكائن معيّن، وذلك بالترتيب نفسه الذي تعرضه حلقة for...in...
. إذا لم تكن قيمة الإدخال عنصرًا، سيتم تحويلها إلى عنصر.
توفّر الطريقة freeze()
سلوك Object.freeze() في "المكتبة العادية". لا يمكن تغيير الكائن المجمَّد، ويمنع تجميد الكائن إضافة خصائص جديدة إليه وإزالة الخصائص الحالية وتغيير قيم الخصائص الحالية. تعرض الدالة freeze()
العنصر نفسه الذي تم تمريره. سيتم التعامل مع الوسيطة الأساسية أو الفارغة كما لو كانت عنصرًا مجمّدًا، وسيتم إرجاعها.
توفّر طريقة delete()
سلوك عامل الحذف في "المكتبة العادية". تزيل هذه الطريقة المفتاح المحدّد من العنصر ما لم يكن العنصر مجمّدًا.
وكما هو الحال مع عامل الحذف في المكتبة العادية، يعرض هذا العامل القيمة true
إذا كانت قيمة الإدخال الأولى (objectInput
) عبارة عن عنصر غير مجمّد حتى إذا كانت قيمة الإدخال الثانية (keyToDelete
) تحدّد مفتاحًا غير متوفّر. ويعرض false
في جميع الحالات الأخرى. ومع ذلك، يختلف عن عامل الحذف في المكتبة العادية
في ما يلي:
- لا يمكن أن يكون
keyToDelete
سلسلة مفصولة بنقاط تحدّد مفتاحًا متداخلاً. - لا يمكن استخدام
delete()
لإزالة عناصر من مصفوفة. - لا يمكن استخدام
delete()
لإزالة أي خصائص من النطاق العام.
البنية
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
المعلّمات
Object.keys
المَعلمة | النوع | الوصف |
---|---|---|
objectInput | أي | العنصر الذي سيتم تعداد مفاتيحه. إذا لم يكن الإدخال كائنًا، سيتم تحويله إلى كائن. |
Object.values
المَعلمة | النوع | الوصف |
---|---|---|
objectInput | أي | العنصر المطلوب تعداد قيمه. إذا لم يكن الإدخال كائنًا، سيتم تحويله إلى كائن. |
Object.entries
المَعلمة | النوع | الوصف |
---|---|---|
objectInput | أي | الكائن الذي سيتم تعداد أزواج المفتاح/القيمة فيه. إذا لم يكن الإدخال كائنًا، سيتم تحويله إلى كائن. |
Object.freeze
المَعلمة | النوع | الوصف |
---|---|---|
objectInput | أي | العنصر المطلوب تجميده إذا لم يكن الإدخال كائنًا، سيتم التعامل معه ككائن ثابت. |
Object.delete
المَعلمة | النوع | الوصف |
---|---|---|
objectInput | أي | العنصر الذي سيتم حذف مفتاحه. |
keyToDelete | string | المفتاح ذو المستوى الأعلى المطلوب حذفه. |
مثال
const Object = require('Object');
// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});
// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});
// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});
// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});
// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.
parseUrl
تعرض هذه الطريقة عنصرًا يحتوي على جميع الأجزاء المكوّنة لعنوان URL معيّن، على غرار العنصر URL
.
ستعرض واجهة برمجة التطبيقات هذه القيمة undefined
لأي عنوان URL مكتوب بشكلٍ غير صحيح. بالنسبة إلى عناوين URL المنسَّقة بشكل صحيح، ستكون قيمة الحقول غير المتوفّرة في سلسلة عنوان URL سلسلة فارغة، أو كائنًا فارغًا في حالة searchParams
.
سيتضمّن العنصر الذي يتم عرضه الحقول التالية:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
مثال
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
البنية
parseUrl(url);
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
url |
string | عنوان URL الكامل الذي سيتم تحليله |
الأذونات المرتبطة
بلا عُري
queryPermission
الاستعلام عن الأذونات المسموح بها والمحدودة تعرض هذه الدالة قيمة منطقية: true
إذا تم منح إذن، وfalse
في الحالات الأخرى.
البنية
queryPermission(permission, functionArgs*)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
permission |
string | اسم الإذن |
functionArgs |
أي | تختلف وسيطات الدالة استنادًا إلى الإذن المطلوب. راجِع وسيطات الدالة أدناه. |
وسيطات الدالة
sendPixel
وinjectScript
وinjectHiddenIframe
: يجب أن تكون المَعلمة الثانية سلسلة عنوان URL.
writeGlobals
، readGlobals
: يجب أن تكون المَعلمة الثانية هي المفتاح الذي تتم كتابته أو قراءته.
readUrl
: لا يلزم توفير وسيطات إضافية للاستعلام عمّا إذا كان يمكن قراءة عنوان URL بالكامل. للاستعلام عمّا إذا كان يمكن قراءة مكوّن معيّن، مرِّر اسم المكوّن كمعلَمة ثانية:
if (queryPermission('readUrl','port')) {
// read the port
}
للتحقّق مما إذا كان مفتاح طلب بحث معيّن قابلاً للقراءة، مرِّر مفتاح طلب البحث كالمَعلمة الثالثة:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
الأذونات المرتبطة
بلا عُري
readAnalyticsStorage
يستردّ البيانات المخزّنة للإحصاءات ويعرض عنصرًا يتضمّن client_id
وsessions
.
client_id
: سلسلة تمثّل رقم تعريف العميل المستخدَم في الإحصاءات.sessions
: مصفوفة من العناصر التي تحتوي على معلومات حول الجلسات الحالية. يتضمّن كل عنصر ما يلي:measurement_id
: سلسلة تمثّل رقم تعريف القياس الخاص بوجهة "إحصاءات Google".-
session_id
: سلسلة تمثّل الطابع الزمني الذي يحدّد الجلسة الحالية. -
session_number
: رقم يمثّل عدد الجلسات التي بدأها المستخدم حتى الجلسة الحالية.
البنية
const readAnalyticsStorage = require('readAnalyticsStorage');
const cookieOptions = {
cookie_prefix: "xyz",
cookie_domain: "google.com",
cookie_path: "/",
};
readAnalyticsStorage(cookieOptions);
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
cookieOptions |
object |
اختياري خيارات لقراءة ملفات تعريف الارتباط التي تتضمّن
cookie_prefix أو cookie_domain أو
cookie_path معيّنًا
|
الأذونات المرتبطة
مثال
const readAnalyticsStorage = require('readAnalyticsStorage');
const analyticsStorageData = readAnalyticsStorage();
sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");
readCharacterSet
لعرض قيمة document.characterSet
.
البنية
readCharacterSet()
المعلّمات
بلا عُري
الأذونات المرتبطة
readTitle
لعرض قيمة document.title
.
البنية
readTitle()
المعلّمات
بلا عُري
الأذونات المرتبطة
require
تستورد هذه الدالة دالة مضمّنة حسب الاسم. تعرض هذه السمة دالة أو كائنًا يمكن استدعاؤه من برنامجك. تعرض الدالة القيمة غير محدّدة عندما لا يتيح المتصفّح استخدام الدالة المضمّنة.
البنية
require(name)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
name |
string | اسم الدالة المطلوب استيرادها. |
مثال
const getUrl = require('getUrl');
const url = getUrl();
الأذونات المرتبطة
بلا عُري
sendPixel
يُرسِل طلب GET إلى نقطة نهاية عنوان URL محدّدة.
البنية
sendPixel(url, onSuccess, onFailure)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
url |
string | مكان إرسال البكسل |
onSuccess |
function | يتم استدعاء هذه الدالة عند تحميل البكسل بنجاح. ملاحظة: حتى إذا تم إرسال الطلب بنجاح، قد تتطلّب المتصفّحات استجابة صالحة للصورة من أجل تنفيذ onSuccess. |
onFailure |
function | يتم استدعاء هذه الدالة عندما يتعذّر تحميل البكسل. ملاحظة: حتى إذا تم إرسال الطلب بنجاح، قد يتم تنفيذ onFailure إذا لم يعرض الخادم استجابة صورة صالحة. |
الأذونات المرتبطة
setCookie
يضبط ملف تعريف الارتباط أو يحذفه بالاسم والقيمة والخيارات المحدّدة.
البنية
setCookie(name, value[, options, encode])
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
name |
string | تمثّل هذه السمة اسم ملف تعريف الارتباط. |
value |
string | قيمة ملف تعريف الارتباط. |
options |
object | تحدّد هذه السمة السمات Domain وPath وExpires وMax-Age وSecure وSameSite. (اطّلِع على الخيارات أدناه.) |
encode |
boolean | تتحكّم هذه السمة في ما إذا كان سيتم ترميز قيمة ملف تعريف الارتباط باستخدام
encodeURIComponent() في JavaScript.
القيمة التلقائية هي true . |
- النطاق: يتم ضبطه من خلال السمة
options['domain']
، إذا كانت متوفرة. اضبط هذه القيمة على'auto'
لمحاولة كتابة ملف تعريف الارتباط باستخدام أوسع نطاق ممكن، استنادًا إلى موقع المستند. إذا لم تنجح هذه الطريقة، سيحاول استخدام نطاقات فرعية أضيق بشكل متتابع. إذا لم تنجح أي من هذه المحاولات، سيحاول كتابة ملف تعريف الارتباط بدون نطاق. إذا لم يتم ضبط أي قيمة، سيحاول ذلك كتابة ملف تعريف الارتباط بدون تحديد نطاق. ملاحظة: عندما تتم كتابة ملف تعريف ارتباط بدون تحديد نطاق إلىdocument.cookie
، سيضبط وكيل المستخدم تلقائيًا نطاق ملف تعريف الارتباط على مضيف الموقع الحالي للمستند. - المسار: يتم ضبطه بواسطة
options['path']
، إذا كان متوفّرًا. عندما تتم كتابة ملف تعريف ارتباط بدون تحديد مسار إلىdocument.cookie
، سيضبط وكيل المستخدم تلقائيًا مسار ملف تعريف الارتباط على مسار الموقع الحالي للمستند. - Max-Age: يتم ضبطها على
options['max-age']
، إذا كانت متوفّرة. - تاريخ انتهاء الصلاحية: يتم ضبطه بواسطة
options['expires']
، إذا كان متوفّرًا. إذا كانت هذه السمة متوفرة، يجب أن تكون سلسلة تاريخ بالتنسيق العالمي المتفق عليه. يمكن استخدامDate.toUTCString()
لتنسيقDate
لهذه المَعلمة. - آمن: يتم ضبطه بواسطة
options['secure']
، إذا كان متوفّرًا. - SameSite: يتم ضبطها بواسطة
options['samesite']
، إذا كانت متوفّرة.
الأذونات المرتبطة
setDefaultConsentState
يدفع هذا الأمر تعديلاً تلقائيًا على الموافقة إلى طبقة البيانات، ليتمّ معالجته في أقرب وقت ممكن بعد انتهاء الحدث الحالي وأيّ علامات تمّ تشغيلها (أو بعد انتهاء مهلة معالجة العلامات). يُضمَن أن تتم معالجة التعديل في هذا الحاوية قبل أي عناصر في قائمة الانتظار في طبقة البيانات. مزيد من المعلومات عن الموافقة
مثال:
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'ad_storage': 'denied',
'analytics_storage': 'granted',
'third_party_storage': 'denied',
'region': ['US-CA'],
'wait_for_update': 500
});
البنية
setDefaultConsentState(consentSettings)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
consentSettings |
object | كائن يحدّد الحالة التلقائية لأنواع الموافقة المحدّدة. |
الكائن consentSettings
هو عملية ربط لسلاسل عشوائية من أنواع الموافقة بأحد القيمتين 'granted'
أو 'denied'
. يمكن استخدام القيم التالية:
اسم المفتاح | النوع | الوصف |
---|---|---|
consentType |
string | يمكن ضبط قيمة كل نوع من أنواع الموافقة على `'granted'` أو `'denied'`. وسيتم التعامل مع أي قيمة أخرى غير `'granted'` على أنّها `'denied'`. ولن يؤدي ضبط القيمة على `undefined` إلى أي تأثير على قيمتها السابقة. |
region |
المصفوفة | مصفوفة اختيارية من رموز المناطق تحدّد المنطقة التي تنطبق عليها إعدادات الموافقة. يتم التعبير عن رموز المناطق باستخدام البلد و/أو التقسيمات الفرعية بتنسيق ISO 3166-2. |
wait_for_update |
number | تحدّد هذه السمة قيمة بالمللي ثانية للتحكّم في مدة الانتظار قبل إرسال البيانات. يتم استخدامها مع أدوات الموافقة التي يتم تحميلها بشكل غير متزامن. |
الأذونات المرتبطة
إذن access_consent
مع إذن تعديل لجميع أنواع الموافقة في عنصر consentSettings.
setInWindow
تضبط هذه السمة القيمة المحدّدة في window
عند المفتاح المحدّد. لن تضبط هذه الطريقة القيمة في window
تلقائيًا إذا كانت هناك قيمة حالية. اضبط
overrideExisting
على true
لضبط القيمة في window
بغض النظر عن
وجود قيمة حالية. تعرض هذه الدالة قيمة منطقية: true
إذا تم ضبط القيمة بنجاح، وfalse
في الحالات الأخرى.
البنية
setInWindow(key, value, overrideExisting)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
key |
string | المفتاح في window الذي سيتم وضع القيمة فيه |
value |
* | القيمة التي سيتم ضبطها في window |
overrideExisting |
boolean | العلامة التي تشير إلى أنّه يجب ضبط القيمة في window ،
بغض النظر عمّا إذا كانت هناك قيمة أم لا. |
الأذونات المرتبطة
sha256
تحسب هذه الطريقة ملخّص SHA-256 للإدخال وتستدعي دالة رد الاتصال مع الملخّص المرمّز بتنسيق base64، ما لم يحدّد العنصر options
ترميزًا مختلفًا للإخراج.
مثال:
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure);
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure, {outputEncoding: 'hex'});
البنية
sha256(input, onSuccess, onFailure = undefined, options = undefined)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
input |
string | السلسلة المطلوب حساب قيمة التجزئة لها. |
onSuccess |
function | يتم استدعاؤها باستخدام الملخّص الناتج، الذي تم ترميزه باستخدام base64، ما لم يحدّد العنصر
options ترميزًا مختلفًا للإخراج. |
onFailure |
function | يتم استدعاء هذه الطريقة في حال حدوث خطأ أثناء احتساب الملخّص، أو إذا كان المتصفّح لا يتوافق مع sha256. يتم استدعاء دالة الرجوع باستخدام عنصر يحتوي على اسم الخطأ والرسالة. |
options |
object | كائن الخيارات الاختياري لتحديد ترميز الإخراج في حال تحديدها، يجب أن يحتوي العنصر على المفتاح outputEncoding مع قيمة base64 أو hex . |
الأذونات المرتبطة
بلا عُري
templateStorage
تعرض هذه السمة عنصرًا يتضمّن طرقًا للوصول إلى مساحة تخزين النماذج. يسمح تخزين النماذج بمشاركة البيانات بين عمليات تنفيذ نموذج واحد. تظل البيانات المخزَّنة في مساحة تخزين النماذج متوفّرة طوال مدة بقاء الصفحة.
البنية
const templateStorage = require('templateStorage');
templateStorage.getItem(key);
templateStorage.setItem(key, value);
templateStorage.removeItem(key);
// Deletes all stored values for the template.
templateStorage.clear();
الأذونات المرتبطة
مثال
const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');
// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
data.gtmOnSuccess();
return;
}
templateStorage.setItem('alreadyRan', true);
sendPixel(
data.oncePerPagePixelUrl,
data.gtmOnSuccess,
() => {
templateStorage.setItem('alreadyRan', false);
data.gtmOnFailure();
});
toBase64
تتيح لك واجهة برمجة التطبيقات toBase64
ترميز سلسلة إلى تمثيل base64.
البنية
toBase64(input)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
input |
string | السلسلة المطلوب ترميزها |
مثال
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
الأذونات المرتبطة
بدون
updateConsentState
يدفع هذا الإذن تعديلاً على الموافقة إلى طبقة البيانات، ليتمّ معالجته في أقرب وقت ممكن بعد انتهاء معالجة الحدث الحالي وأي علامات تمّ تشغيلها (أو بعد انتهاء المهلة المحدّدة لمعالجة العلامة). من المؤكّد أنّه ستتم معالجة التعديل في هذا الحاوية قبل أي عناصر في قائمة الانتظار في طبقة البيانات. مزيد من المعلومات عن الموافقة
مثال:
const updateConsentState = require('updateConsentState');
updateConsentState({
'ad_storage': 'granted',
'analytics_storage': 'denied',
'third_party_storage': 'granted',
});
البنية
updateConsentState(consentSettings)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
consentSettings |
object | عنصر يعدّل حالة أنواع الموافقة المحدّدة. |
الكائن consentSettings
هو عملية ربط لسلاسل عشوائية من أنواع الموافقة بأحد القيمتين 'granted'
أو 'denied'
. يمكن استخدام القيم التالية:
اسم المفتاح | النوع | الوصف |
---|---|---|
consentType |
string | يمكن ضبط قيمة كل نوع من أنواع الموافقة على "ممنوحة" أو "مرفوضة". سيتم التعامل مع أي قيمة أخرى غير "granted" على أنّها "denied". لن يؤدي ضبط القيمة على "undefined" إلى أي تأثير في قيمتها السابقة. |
الأذونات المرتبطة
إذن access_consent
مع إذن تعديل لجميع أنواع الموافقة في عنصر consentSettings.
واجهات برمجة التطبيقات الاختبارية
تعمل واجهات برمجة التطبيقات هذه مع اختبارات JavaScript المحصورة في بيئة الاختبار لإنشاء اختبارات للنماذج المخصّصة في أداة "إدارة العلامات من Google". لا تحتاج واجهات برمجة التطبيقات الاختبارية هذه إلى بيان require()
. مزيد من المعلومات عن اختبارات النماذج المخصّصة
assertApi
تعرض هذه الدالة عنصر مطابقة يمكن استخدامه بسلاسة لتقديم تأكيدات بشأن واجهة برمجة التطبيقات المحدّدة.
البنية
assertApi(apiName)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
apiName |
string | اسم واجهة برمجة التطبيقات المطلوب التحقّق منها، وهو السلسلة نفسها التي تم تمريرها إلى
require() .
|
أدوات المطابقة
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
أمثلة
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
تم تصميم واجهة برمجة التطبيقات assertThat
على غرار مكتبة [Truth] من Google. تعرض هذه الدالة كائنًا يمكن استخدامه بسلاسة لتقديم تأكيدات بشأن قيمة موضوع معيّن. سيؤدي تعذُّر التأكيد إلى إيقاف الاختبار على الفور وتصنيفه على أنّه غير ناجح. ومع ذلك، لن يؤثّر تعذُّر إجراء أحد الاختبارات في حالات الاختبار الأخرى.
البنية
assertThat(actual, opt_message)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
actual |
أي | القيمة المطلوب استخدامها في عمليات التحقّق السلسة. |
opt_message |
string | رسالة اختيارية للطباعة في حال تعذُّر التأكيد. |
أدوات المطابقة
أداة المطابقة | الوصف |
---|---|
isUndefined() |
تؤكّد هذه السمة أنّ الموضوع هو undefined . |
isDefined() |
تؤكّد هذه السمة أنّ الموضوع ليس undefined . |
isNull() |
تؤكّد هذه السمة أنّ الموضوع هو null . |
isNotNull() |
تؤكّد هذه السمة أنّ الموضوع ليس null . |
isFalse() |
تؤكّد هذه السمة أنّ الموضوع هو false . |
isTrue() |
تؤكّد هذه السمة أنّ الموضوع هو true . |
isFalsy() |
تؤكّد هذه السمة أنّ الموضوع غير صحيح. القيم الخاطئة هي
undefined وnull وfalse
وNaN و0 و"" (سلسلة فارغة). |
isTruthy() |
تؤكّد هذه السمة أنّ الموضوع صحيح. القيم الخاطئة هي
undefined وnull وfalse
وNaN و0 و"" (سلسلة فارغة). |
isNaN() |
تؤكّد هذه السمة أنّ الموضوع هو القيمة NaN. |
isNotNaN() |
تؤكّد هذه السمة أنّ الموضوع هو أي قيمة بخلاف NaN. |
isInfinity() |
تؤكّد هذه السمة أنّ الموضوع هو قيمة موجبة أو سالبة لا نهائية. |
isNotInfinity() |
تؤكّد هذه السمة أنّ الموضوع هو أي قيمة غير اللانهاية الموجبة أو السالبة. |
isEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع يساوي القيمة المحدّدة. هذه مقارنة قيم، وليست مقارنة مراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
isNotEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع لا يساوي القيمة المحدّدة. هذه مقارنة بين القيم، وليست مقارنة بين المراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
isAnyOf(...expected) |
تؤكّد هذه السمة أنّ الموضوع يساوي إحدى القيم المحدّدة. هذه مقارنة بين القيم، وليست مقارنة بين المراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
isNoneOf(...expected) |
تؤكّد هذه السمة أنّ الموضوع لا يساوي أيًا من القيم المحدّدة. هذه مقارنة بين القيم، وليست مقارنة بين المراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
isStrictlyEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع يساوي تمامًا (=== ) القيمة المحدّدة. |
isNotStrictlyEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع ليس مساويًا تمامًا (!== ) للقيمة المحدّدة. |
isGreaterThan(expected) |
تؤكّد هذه السمة أنّ الموضوع أكبر من (> ) القيمة المحدّدة في مقارنة مرتّبة. |
isGreaterThanOrEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع أكبر من أو يساوي
(>= ) القيمة المحدّدة في مقارنة مرتّبة. |
isLessThan(expected) |
تؤكّد هذه السمة أنّ الموضوع أقل من (< ) القيمة المحدّدة في مقارنة مرتبة. |
isLessThanOrEqualTo(expected) |
تؤكّد هذه السمة أنّ الموضوع أقل من أو يساوي (<= )
القيمة المحدّدة في مقارنة مرتّبة. |
contains(...expected) |
تؤكّد هذه السمة أنّ الموضوع هو مصفوفة أو سلسلة تحتوي على كل القيم المحدّدة بأي ترتيب. هذه مقارنة قيم، وليست مقارنة مراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
doesNotContain(...expected) |
تؤكّد هذه السمة أنّ الموضوع عبارة عن مصفوفة أو سلسلة لا تحتوي على أي من القيم المحدّدة. هذه مقارنة قيم وليست مقارنة مراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
containsExactly(...expected) |
تؤكّد أنّ الموضوع هو صفيف يحتوي على جميع القيم المحدّدة بأي ترتيب ولا يحتوي على أي قيم أخرى. هذه مقارنة قيم، وليست مقارنة مراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
doesNotContainExactly(...expected) |
تؤكّد هذه السمة أنّ الموضوع عبارة عن مصفوفة تحتوي على مجموعة مختلفة من القيم عن القيم المحدّدة بأي ترتيب. هذه مقارنة قيم، وليست مقارنة مراجع. تتم مقارنة محتويات الكائنات والمصفوفات بشكل متكرر. |
hasLength(expected) |
تؤكّد هذه السمة أنّ الموضوع هو مصفوفة أو سلسلة ذات طول محدّد. يتعذّر التأكيد دائمًا إذا لم تكن القيمة صفيفًا أو سلسلة. |
isEmpty() |
تؤكّد هذه السمة أنّ الموضوع عبارة عن مصفوفة أو سلسلة فارغة (الطول = 0). يتعذّر التأكيد دائمًا إذا لم تكن القيمة صفيفًا أو سلسلة. |
isNotEmpty() |
تؤكّد هذه القاعدة أنّ الموضوع عبارة عن مصفوفة أو سلسلة غير فارغة (الطول > 0). يتعذّر التأكيد دائمًا إذا لم تكن القيمة مصفوفة أو سلسلة. |
isArray() |
تؤكّد هذه السمة أنّ نوع الموضوع هو مصفوفة. |
isBoolean() |
تؤكّد هذه السمة أنّ نوع الموضوع هو قيمة منطقية. |
isFunction() |
تؤكّد هذه السمة أنّ نوع الموضوع هو دالة. |
isNumber() |
تؤكّد هذه السمة أنّ نوع الموضوع هو رقم. |
isObject() |
تؤكّد هذه السمة أنّ نوع الموضوع هو كائن. |
isString() |
تؤكّد هذه السمة أنّ نوع الموضوع هو سلسلة. |
أمثلة
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
يتعذّر اجتياز الاختبار الحالي على الفور ويتم عرض الرسالة المحدّدة، إذا تم تقديمها.
البنية
fail(opt_message);
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
opt_message |
string | نص رسالة الخطأ الاختياري |
مثال
fail('This test has failed.');
mock
تتيح لك واجهة برمجة التطبيقات mock
إلغاء سلوك واجهات برمجة التطبيقات المحصورة في بيئة الاختبار. يمكن استخدام واجهة برمجة التطبيقات التجريبية في رمز النموذج، ولكنّها لا تعمل إلا في وضع الاختبار.
تتم إعادة ضبط عمليات المحاكاة قبل تشغيل كل اختبار.
البنية
mock(apiName, returnValue);
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
apiName |
string | اسم واجهة برمجة التطبيقات التي سيتم محاكاتها، وهو السلسلة نفسها التي تم تمريرها إلى
require() |
returnValue |
أي | القيمة التي سيتم عرضها لواجهة برمجة التطبيقات أو دالة تم طلبها بدلاً من واجهة برمجة التطبيقات إذا كان returnValue دالة، يتم استدعاء هذه الدالة بدلاً من Sandboxed API. وإذا كان returnValue أي شيء آخر غير دالة، يتم عرض هذه القيمة بدلاً من Sandboxed API. |
أمثلة
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
تتيح لك واجهة برمجة التطبيقات mockObject
إلغاء سلوك واجهات برمجة التطبيقات المحصورة في بيئة الاختبار المعزولة التي تعرض عنصرًا. يمكن استخدام واجهة برمجة التطبيقات بأمان في رمز النموذج، ولكنّها لا تعمل إلا في وضع الاختبار. تتم إعادة ضبط عمليات المحاكاة قبل تشغيل كل اختبار.
البنية
mockObject(apiName, objectMock);
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
apiName |
string | اسم واجهة برمجة التطبيقات التي سيتم محاكاتها، وهو السلسلة نفسها التي تم تمريرها إلى
require() |
objectMock |
object | القيمة التي سيتم عرضها لواجهة برمجة التطبيقات أو دالة تم طلبها بدلاً من واجهة برمجة التطبيقات يجب أن يكون قيمة كائن. |
أمثلة
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
تنفّذ هذه الدالة الرمز الخاص بالنموذج، أي محتوى علامة التبويب الرمز، في بيئة الاختبار الحالية باستخدام عنصر بيانات إدخال معيّن.
البنية
runCode(data)
المعلّمات
المَعلمة | النوع | الوصف |
---|---|---|
data |
object | عنصر البيانات الذي سيتم استخدامه في الاختبار. |
قيمة العائد
تعرِض هذه الدالة قيمة متغيّر لنماذج المتغيّرات، وتعرض undefined
لجميع أنواع النماذج الأخرى.
مثال
runCode({field1: 123, field2: 'value'});