واجهات برمجة التطبيقات الأساسية
تعمل واجهات برمجة التطبيقات هذه مع 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 |
سلسلة | إنّ نوع الموافقة المطلوب الاستماع إلى الحالة يتغيّر عليه. |
listener |
الوظيفة | الدالة التي يتم تشغيلها عندما تكون حالة نوع الموافقة المحدّد التغييرات. |
عند استدعاء مستمع، سيتم تمرير نوع الموافقة الذي يتم القيمة الجديدة لنوع الموافقة هذا:
المعلمة | النوع | الوصف |
---|---|---|
consentType |
سلسلة | نوع الموافقة الذي يتم تغييره |
granted |
منطقية | قيمة منطقية تكون صحيحة إذا تم تغيير نوع الموافقة المحدّد إلى المسموح به. |
الأذونات المرتبطة
إذن "access_consent
" مع إذن بالقراءة لنوع الموافقة
addEventCallback
تسمح لك واجهة برمجة التطبيقات addEventCallback
بتسجيل دالة استدعاء ستجعل
أن يتم استدعاءها في نهاية الحدث. وسيتم استدعاء عملية معاودة الاتصال عند إجراء جميع
علامات الحدث التي تم تنفيذها أو عند انقضاء مهلة الحدث في الصفحة.
يتم تمرير قيمتين، رقم تعريف الحاوية التي تستدعي
وكائن يحتوي على معلومات عن الحدث.
البنية
addEventCallback(callback)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
callback |
الوظيفة | الدالة المطلوب استدعاؤها في نهاية الحدث. |
يحتوي العنصر 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 |
سلسلة | مسار مفصول بالنقاط في الكائن window حيث توجد قيمة
النسخ إليه. جميع المكوّنات في المسار وصولاً إلى المكوّن الأخير
يجب أن تكون متوفّرة مسبقًا في العنصر window . |
fromPath |
سلسلة | مسار مفصول بالنقاط في 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 |
سلسلة | مسار مفصول بالنقاط إلى الدالة في window من أجل
الاتصال. |
args |
* | الوسيطات التي سيتم تمريرها إلى الدالة. |
الأذونات المرتبطة
access_globals
مع تفعيل إذن execute
.
callLater
جدولة استدعاء دالة ليتم بشكل غير متزامن. ستكون الدالة
يتم استدعاؤه بعد ظهور التعليمة البرمجية الحالية. وهذا يساوي
setTimeout(<function>, 0)
البنية
callLater(function)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
function |
الوظيفة | الدالة المطلوب استدعاءها. |
copyFromDataLayer
تعرض القيمة المعينة حاليًا للمفتاح المحدد في طبقة البيانات:
يتم العثور على أي قيمة في المفتاح المحدد إذا كان نوعًا أو دالة أو كائنًا
أو undefined
حرفيًا أو غير ذلك.
البنية
copyFromDataLayer(key[, dataLayerVersion])
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
key |
سلسلة | تمثّل هذه السمة المفتاح بتنسيق "a.b.c". |
dataLayerVersion |
الرقم | تعمل البيانات الاختيارية إصدار طبقة معينة. والقيمة الافتراضية هي 2. لا يُنصح بشدة أن استخدم القيمة 1. |
الأذونات المرتبطة
copyFromWindow
تنسخ متغيّرًا من عنصر window
. إذا تعذّر إدخال القيمة في window
بشكل مباشر إلى نوع متوافق مع JavaScript موضوع في وضع الحماية، undefined
سيتم
عاد. الأنواع الثمانية المتوافقة مع JavaScript في وضع الحماية هي null
،
undefined
وboolean
وnumber
وstring
وArray
وObject
وfunction
.
تعرض القيمة التي تم استرجاعها (وفرضها).
البنية
copyFromWindow(key)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
key |
سلسلة | المفتاح في 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 |
سلسلة | يشير ذلك المصطلح إلى المسار في الدالة window حيث تم ضبط الدالة، إذا كان ذلك منطبقًا.
غير موجودة بالفعل. تدعم هذه الوسيطة تدوين النقاط العادي. إذا كانت
لم يتم العثور على مسار المفتاح، تم طرح استثناء. أي، إذا
قيمة fnKey هي 'one.two' ، وسيؤدي ذلك إلى طرح
. |
arrayKey |
سلسلة | يشير ذلك المصطلح إلى المسار في window حيث يتم ضبط الصفيف، إذا لم يتم ضبطه.
موجودة بالفعل. تدعم هذه الوسيطة تدوين النقاط العادي. إذا كانت
لم يتم العثور على مسار المفتاح، تم طرح استثناء. أي، إذا
arrayKey هي 'one.two' ، وما من
كائنًا عموميًا باسم 'one' ، سيُطرح
. |
الأذونات المرتبطة
createQueue
تنشئ مصفوفة في window
(إذا لم تكن موجودة) وتعرض
التي ستدفع القيم إلى تلك الصفيفة.
تتطلّب هذه الدالة إعداد القراءة والكتابة لـ arrayKey
على
إذن access_globals
.
مثال:
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
البنية
createQueue(arrayKey)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
arrayKey |
سلسلة | هو المفتاح في 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 |
سلسلة | يشير هذا المصطلح إلى عنوان URL تم ترميزه من قِبل
encodeUri()
أو بوسائل أخرى. |
الأذونات المرتبطة
بلا عُري
decodeUriComponent
فك ترميز أي أحرف مشفرة في مكوّن معرّف الموارد المنتظم (URI) المقدَّم. تؤدي إلى إرجاع
string التي تمثل مكوّن URI الذي تم فك ترميزه. تعرض undefined
عند
المقدمة مع إدخال غير صالح.
مثال:
const decode = require('decodeUriComponent');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
البنية
decodeUriComponent(encoded_uri_component)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
encoded_uri_component |
سلسلة | يشير هذا المصطلح إلى مكوّن معرّف الموارد المنتظم (URI) الذي تمّ ترميزه بواسطة
encodeUriComponent()
أو بوسائل أخرى. |
الأذونات المرتبطة
بلا عُري
encodeUri
لعرض مُعرّف موارد منتظم (URI) مُشفَّر من خلال وضع حروف إلغاء خاصة
الأحرف. عرض سلسلة تمثل السلسلة المقدّمة المشفرة
معرف موارد منتظم (URI). تعرض undefined
عند تقديمه مع إدخال غير صالح (عنصر بديل وحيد).
مثال:
sendPixel('https://www.example.com/' + encodeUri(pathInput));
البنية
encodeUri(uri)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
uri |
سلسلة | معرّف موارد منتظم (URI) كامل. |
الأذونات المرتبطة
بلا عُري
encodeUriComponent
لعرض مُعرّف موارد منتظم (URI) مُشفَّر من خلال وضع حروف إلغاء خاصة
الأحرف. عرض سلسلة تمثل السلسلة المقدّمة المشفرة
معرف موارد منتظم (URI). تعرض undefined
عند تقديمه مع إدخال غير صالح (عنصر بديل وحيد).
مثال:
sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));
البنية
encodeUriComponent(str)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
str |
سلسلة | مكون من مكونات معرف الموارد المنتظم (URI). |
الأذونات المرتبطة
بلا عُري
fromBase64
تتيح لك واجهة برمجة التطبيقات fromBase64
فك ترميز السلاسل من base64.
التمثيل المناسب. تعرض undefined
إذا تم توفيرها مع إدخال غير صالح.
البنية
fromBase64(base64EncodedString)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
base64EncodedString |
سلسلة | سلسلة Base64 مرمّزة. |
مثال
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
الأذونات المرتبطة
بدون تحديد نمط
generateRandom
تعرض رقمًا عشوائيًا (عدد صحيح) ضمن النطاق المحدّد.
البنية
generateRandom(min, max)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
min |
الرقم | الحد الأدنى لقيمة محتملة للعدد الصحيح الذي تم عرضه. |
max |
الرقم | الحد الأقصى للقيمة المحتملة للعدد الصحيح الذي تم إرجاعه. |
الأذونات المرتبطة
بلا عُري
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 |
سلسلة | اسم ملف تعريف الارتباط. |
decode |
منطقية | تتحكّم في ما إذا كان سيتم فك ترميز قيم ملفات تعريف الارتباط باستخدام
وJavaScript
decodeURIComponent() الإعدادات التلقائية على
true |
الأذونات المرتبطة
getQueryParameters
عرض أول معلمات أو جميعها لعنوان URL الحالي queryKey
.
تعرض القيمة الأولى من queryKey
أو مصفوفة قيم من
queryKey
البنية
getQueryParameters(queryKey[, retrieveAll])
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
queryKey |
سلسلة | المفتاح المطلوب قراءته من مَعلمات طلب البحث. |
retrieveAll |
منطقية | تحديد ما إذا كان سيتم استرداد جميع القيم أم لا. |
على سبيل المثال، إذا كان عنوان 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 |
سلسلة | المفتاح المطلوب قراءته من مَعلمات طلب البحث. |
retrieveAll |
منطقية | تحديد ما إذا كان سيتم استرداد جميع القيم أم لا. |
على سبيل المثال، إذا كان عنوان 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 |
سلسلة | المكوِّن المطلوب عرضه من عنوان 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 |
"غير محدّد" |
null |
"خالية" |
true |
"منطقي" |
12 |
'رقم' |
'string' |
"سلسلة" |
{ a: 3 } |
"كائن" |
[ 1, 3 ] |
"مصفوفة" |
(x) => x + 1 |
"الوظيفة" |
الأذونات المرتبطة
بلا عُري
getUrl
عرض سلسلة تمثل كامل عنوان URL الحالي أو جزءًا منه ونوع المكون وبعض معلمات التهيئة.
البنية
getUrl(component)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
component |
سلسلة | المكوِّن المطلوب عرضه من عنوان URL. يجب أن تكون واحدة مما يلي:
protocol ، host ، port ،
path ، query ، extension ،
fragment إذا كان المكوِّن هو undefined ،
null ، أو لا تتطابق مع أحد هذه المكونات،
سيتم عرض قيمة href بالكامل. |
الأذونات المرتبطة
gtagSet
إرسال أمر gtag set إلى طبقة البيانات، لتتم معالجته فور بعد انتهاء الحدث الحالي وأي علامات تم تشغيلها المعالجة (أو انتهت مهلة معالجة العلامات). التحديث مضمون ستتم معالجته في هذه الحاوية قبل أي عناصر في قائمة الانتظار في طبقة البيانات قائمة الانتظار.
على سبيل المثال، في حال تم طلب الإذن من خلال علامة تم تنشيطها عند إعداد الموافقة، سيتم تنفيذ ما يلي:
سيتم تطبيق التعديل قبل معالجة حدث الإعداد. أمثلة
هي ضبط ads_data_redaction
على true
أو false
أو url_passthrough
.
يتم ضبطها على true
أو false
.
أمثلة:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
البنية
gtagSet(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 |
سلسلة | عنوان URL الذي سيتم استخدامه كقيمة للسمة src في إطار iframe
. |
onSuccess |
الوظيفة | يتم استدعاء هذا الإجراء عند تحميل الإطار بنجاح. |
الأذونات المرتبطة
injectScript
تتم إضافة علامة نص برمجي إلى الصفحة لتحميل عنوان URL المحدد بشكل غير متزامن. تشير رسالة الأشكال البيانية يتم توفير عمليات الاستدعاء كمثيلات للدوال ويتم تضمينها في JavaScript الدوال التي تستدعيها.
البنية
injectScript(url, onSuccess, onFailure[, cacheToken])
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
url |
سلسلة | عنوان النص البرمجي المراد إدخاله. |
onSuccess |
الوظيفة | يتم استدعاء عند تحميل النص البرمجي بنجاح. |
onFailure |
الوظيفة | يتم استدعاء هذا الإجراء عند تعذُّر تحميل النص البرمجي. |
cacheToken |
سلسلة | سلسلة اختيارية تُستخدم للإشارة إلى عنوان URL الذي يجب أن يتم تخزينه مؤقتًا. في حال حذف
هذه القيمة، فسيتم إنشاء عنصر نص برمجي واحد فقط
تطلب منه JavaScript. وستؤدي أي محاولات إضافية للتحميل إلى
الطريقتان onSuccess وonFailure المحدَّدتان
قيد الانتظار إلى أن يتم تحميل النص البرمجي. |
الأذونات المرتبطة
isConsentGranted
تعرض القيمة "صحيح" إذا تم منح نوع الموافقة المحدّد.
يُؤخذ في الاعتبار منح الموافقة على نوع معيّن من أنواع الموافقة إذا كانت هذه الموافقة تم ضبط النوع على "تم منح الإذن" أو لم يتم تعيينها على الإطلاق. في حال ضبط نوع الموافقة على وأي قيمة أخرى سيتم اعتبارها غير ممنوحة.
ستوفر واجهة مستخدم أداة "إدارة العلامات من Google" لإعدادات العلامات خيارًا
حَرِيق إذا كانت هناك علامة مُفعّلة دائمًا تستخدم واجهة برمجة التطبيقات هذه، تُعتبر الموافقة
وسيتم إرجاع true
، بغض النظر عن حالة الموافقة الفعلية.
مثال:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
البنية
isConsentGranted(consentType)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
consentType |
سلسلة | نوع الموافقة المطلوب التحقّق من حالته |
الأذونات المرتبطة
إذن "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
تعرض القيمة المقدمة في شكل string.
البنية
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 |
سلسلة | اسم العمود الذي ستصبح قيمه مفاتيح في العمود المحوَّل
Map |
valueColumnName |
سلسلة | اسم العمود الذي ستصبح قيمه قيمًا في العمود المحوَّل
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 | سلسلة | مفتاح المستوى الأعلى الذي تريد حذفه. |
مثال
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 |
سلسلة | تمثّل هذه السمة عنوان URL الكامل الذي سيتم تحليله. |
الأذونات المرتبطة
بلا عُري
queryPermission
أرسِل طلب بحث عن الأذونات المسموح بها والتي تم تضييق نطاقها. عرض قيمة منطقية: true
إذا كانت
يتم منح الإذن، false
في الحالات الأخرى.
البنية
queryPermission(permission, functionArgs*)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
permission |
سلسلة | اسم الإذن |
functionArgs |
أيّ | تختلف وسيطات الدوال استنادًا إلى الإذن الذي يتم طلبه. عرض وسيطات الدوال أدناه. |
وسيطات الدوال
sendPixel
، injectScript
، injectHiddenIframe
: المَعلمة الثانية
سلسلة عنوان URL.
writeGlobals
، readGlobals
: يجب أن تكون المعلمة الثانية هي المفتاح
كتابتها أو قراءتها.
readUrl
: ما مِن وسيطات إضافية ضرورية للاستعلام عمّا إذا كانت المجموعة بالكامل
يمكن قراءة عنوان URL. للاستعلام عن إمكانية قراءة مكون معين، مرر
اسم المكون كوسيطة ثانية:
if (queryPermission('readUrl','port')) {
// read the port
}
للتحقق مما إذا كان مفتاح استعلام معين قابلاً للقراءة أم لا، مرر مفتاح الاستعلام المعلمة الثالثة:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
الأذونات المرتبطة
بلا عُري
readCharacterSet
تعرض قيمة document.characterSet
.
البنية
readCharacterSet()
المعلّمات
بلا عُري
الأذونات المرتبطة
readTitle
تعرض قيمة document.title
.
البنية
readTitle()
المعلّمات
بلا عُري
الأذونات المرتبطة
require
لاستيراد دالة مضمنة حسب الاسم. عرض دالة أو كائن التي يمكنك استدعاؤها من برنامجك. عرض غير محدّد عندما يكون المتصفّح لا يدعم الوظيفة المضمنة.
البنية
require(name)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
name |
سلسلة | اسم الدالة المطلوب استيرادها. |
مثال
const getUrl = require('getUrl');
const url = getUrl();
الأذونات المرتبطة
بلا عُري
sendPixel
لإجراء طلب GET إلى نقطة نهاية عنوان URL محددة.
البنية
sendPixel(url, onSuccess, onFailure)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
url |
سلسلة | مكان إرسال وحدة البكسل |
onSuccess |
الوظيفة | يتم استدعاء عند تحميل وحدة البكسل بنجاح. ملاحظة: حتى إذا كان الطلب تم إرسالها بنجاح، ربما تتطلب المتصفحات رد صورة صالحًا لتشغيل onSuccess. |
onFailure |
الوظيفة | يتم استدعاء عند تعذّر تحميل وحدة البكسل. ملاحظة: حتى إذا كان الطلب بنجاح، فقد يتم تشغيل onFailure إذا لم يعرض الخادم رد صورة صالح. |
الأذونات المرتبطة
setCookie
لضبط ملفّ تعريف الارتباط أو حذفه باستخدام الاسم والقيمة والخيارات المحدّدة.
البنية
setCookie(name, value[, options, encode])
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
name |
سلسلة | اسم ملف تعريف الارتباط. |
value |
سلسلة | قيمة ملف تعريف الارتباط. |
options |
كائن | تحدد النطاق، سمات المسار وانتهاء الصلاحية والحدّ الأقصى للعمر والآمنة وسمة SameSite. (اطّلِع على الخيارات أدناه). |
encode |
منطقية | تتحكّم في ما إذا كان سيتم ترميز قيمة ملف تعريف الارتباط باستخدام
وJavaScript
encodeURIComponent()
وتكون القيمة التلقائية هي true . |
- النطاق: يتم ضبطه من خلال الموقع الإلكتروني على
options['domain']
، إذا كان متوفّرًا. ضبط هذه القيمة إلى'auto'
لمحاولة كتابة ملف تعريف الارتباط باستخدام أوسع نطاق ممكن، استنادًا إلى موقع المستند. وإذا لم يفلح ذلك، فستحاول المحاولة بشكل متعاقب ونطاقات فرعية أضيق. وإذا تعذّر كل ذلك، سيحاول كتابة ملف تعريف الارتباط بدون نطاق. إذا لم يتم ضبط أي قيمة، سيحاول هذا كتابة ملف تعريف الارتباط بدون تحديد نطاق. ملاحظة: عندما يكون ملف تعريف ارتباط بدون نطاق محدّد إذا تمت كتابته إلىdocument.cookie
، سيعيِّن وكيل المستخدم نطاق ملف تعريف الارتباط تلقائيًا إلى مضيف موقع المستند الحالي. - المسار: الذي يتم ضبطه من خلال
options['path']
، إذا كان متوفّرًا. عندما يكون ملف تعريف الارتباط بدون مسار المحدد إلىdocument.cookie
، سيعمل وكيل المستخدم على إعداد مسار ملف تعريف الارتباط إلى مسار موقع المستند الحالي. - الحد الأقصى للعمر: يتم ضبطه من خلال
options['max-age']
، إذا كان متوفّرًا. - تاريخ انتهاء الصلاحية: تم ضبطه من خلال
options['expires']
، في حال توفّره. وفي حال توفّرها، يجب أن سلسلة تاريخ بتنسيق التوقيت العالمي المتفق عليه (UTC). يمكن استخدام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 |
كائن | عنصر يحدّد الحالة التلقائية للموافقة المحدَّدة الأنواع. |
يربط العنصر consentSettings
السلاسل العشوائية لنوع الموافقة
واحد من 'granted'
أو 'denied'
. وتتيح القيم التالية:
اسم المفتاح | النوع | الوصف |
---|---|---|
consentType |
سلسلة | يمكن ضبط قيمة كل نوع موافقة على "تم منح الإذن" أو "تم الرفض". وسيتم التعامل مع أي قيمة بخلاف `'granted'` على أنّها "'denied'". الإعداد ولن يكون للقيمة إلى "غير محددة" أي تأثير في قيمتها السابقة. |
region |
مصفوفة | مصفوفة اختيارية لرموز المناطق تحدد المنطقة التي التي تنطبق عليها إعدادات الموافقة يتم التعبير عن رموز المناطق باستخدام البلد. و/أو الأقسام الفرعية بتنسيق ISO 3166-2. |
wait_for_update |
الرقم | تحدِّد هذه السياسة قيمة مللي ثانية للتحكّم في مدة الانتظار قبل نقل البيانات. تم إرسالها. يتم استخدامها مع أدوات الموافقة التي يتم تحميلها بشكل غير متزامن. |
الأذونات المرتبطة
إذن "access_consent
" حاصل على إذن بتعديل المحتوى لجميع أنواع الموافقة في
consentSettings.
setInWindow
تضبط القيمة المحدّدة في window
على المفتاح المحدّد. بشكل افتراضي، لن يتم تنفيذ هذه الطريقة
اضبط القيمة في window
إذا كانت هناك قيمة حالية. ضبط
overrideExisting
إلى true
لضبط القيمة في window
بغض النظر عن
وجود قيمة موجودة. عرض قيمة منطقية: true
إذا كانت القيمة
تم تعيينها بنجاح، وfalse
في الحالات الأخرى.
البنية
setInWindow(key, value, overrideExisting)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
key |
سلسلة | المفتاح في window لوضع القيمة عنده. |
value |
* | القيمة المطلوب ضبطها في window . |
overrideExisting |
منطقية | العلامة التي تشير إلى أنّه يجب ضبط هذه القيمة في 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 |
سلسلة | السلسلة المطلوب حساب التجزئة لها. |
onSuccess |
الوظيفة | ويتم استدعاءه مع الملخص الناتج، بترميز base64، ما لم
يحدد الكائن options ترميز إخراج مختلفًا. |
onFailure |
الوظيفة | يتم استدعاؤه في حالة حدوث خطأ أثناء حساب الملخص، أو إذا كان لا يدعم المتصفح sha256 في الأصل. تُسمى معاودة الاتصال مع كائن يحتوي على اسم الخطأ والرسالة. |
options |
كائن | اختياري للخيارات لتحديد ترميز الإخراج. في حال حذف
محدد، يجب أن يحتوي الكائن على المفتاح 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 |
سلسلة | سلسلة لترميزها. |
مثال
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 |
كائن | عنصر يعدِّل الحالة لأنواع الموافقة المحدّدة. |
يربط العنصر consentSettings
السلاسل العشوائية لنوع الموافقة
واحد من 'granted'
أو 'denied'
. وتتيح القيم التالية:
اسم المفتاح | النوع | الوصف |
---|---|---|
consentType |
سلسلة | يمكن ضبط القيمة لكل نوع موافقة على "تم منح الإذن" أو "مرفوض". أي قيمة بخلاف "تم منح الإذن" سيتم التعامل معه على أنه "مرفوض". الإعداد القيمة إلى 'unbound' لن يكون لها أي تأثير على قيمته السابقة. |
الأذونات المرتبطة
إذن "access_consent
" حاصل على إذن بتعديل المحتوى لجميع أنواع الموافقة في
consentSettings.
اختبار واجهات برمجة التطبيقات
تعمل واجهات برمجة التطبيقات هذه مع اختبارات JavaScript في وضع الحماية لإنشاء اختبارات مخصّصة
النماذج في أداة "إدارة العلامات من Google" لا تحتاج واجهات برمجة التطبيقات التجريبية هذه إلى require()
.
الشخصي. مزيد من المعلومات عن اختبارات النماذج المخصّصة
assertApi
تعرض كائن مطابقة يمكن استخدامه للتأكيد على وجود تأكيدات حول واجهة برمجة التطبيقات المحددة.
البنية
assertApi(apiName)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
apiName |
سلسلة | اسم واجهة برمجة التطبيقات المطلوب التحقّق منها نفس السلسلة التي تم تمريرها إلى
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 |
سلسلة | رسالة اختيارية لطباعتها في حال تعذّر التأكيد. |
أدوات المطابقة
مطابق | الوصف |
---|---|
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 |
سلسلة | نص رسالة خطأ اختياري. |
مثال
fail('This test has failed.');
mock
تتيح لك واجهة برمجة التطبيقات mock
إلغاء سلوك واجهات برمجة التطبيقات التي تم وضع الحماية لها. النموذج الوهمي
يمكن استخدام واجهة برمجة التطبيقات بأمان في رمز النموذج، ولكنّها لا تعمل إلا في وضع الاختبار.
وتتم إعادة ضبط النماذج قبل إجراء كل اختبار.
البنية
mock(apiName, returnValue);
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
apiName |
سلسلة | اسم واجهة برمجة التطبيقات المطلوب محاكاةها نفس السلسلة التي تم تمريرها إلى
require() |
returnValue |
أيّ | القيمة المطلوب عرضها لواجهة برمجة التطبيقات أو دالة يتم استدعاءها بدلاً من
واجهة برمجة التطبيقات. إذا كانت returnValue دالة، يتم استدعاء هذه الدالة في
مكان واجهة برمجة التطبيقات Sandboxed API إذا كانت السمة returnValue تمثّل أي قيمة أخرى
من إحدى الدوال، يتم عرض هذه القيمة بدلاً من وضع الحماية
واجهة برمجة التطبيقات. |
أمثلة
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
تتيح لك واجهة برمجة التطبيقات mockObject
إلغاء سلوك واجهات برمجة التطبيقات ذات وضع الحماية التي
لإرجاع كائن. يمكن استخدام واجهة برمجة التطبيقات بأمان في رمز النموذج، ولكنّها قابلة للتشغيل
في وضع الاختبار فقط. وتتم إعادة ضبط النماذج قبل إجراء كل اختبار.
البنية
mockObject(apiName, objectMock);
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
apiName |
سلسلة | اسم واجهة برمجة التطبيقات المطلوب محاكاةها نفس السلسلة التي تم تمريرها إلى
require() |
objectMock |
كائن | القيمة المطلوب عرضها لواجهة برمجة التطبيقات أو دالة يتم استدعاءها بدلاً من واجهة برمجة التطبيقات. يجب أن تكون كائنًا. |
أمثلة
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
لتشغيل رمز النموذج، أي محتوى علامة التبويب الرمز في بيئة الاختبار الحالية مع كائن بيانات إدخال معين.
البنية
runCode(data)
المعلّمات
المعلمة | النوع | الوصف |
---|---|---|
data |
كائن | كائن البيانات المطلوب استخدامه في الاختبار. |
القيمة المعروضة
لعرض قيمة متغير لنماذج المتغير؛ يُرجع undefined
مقابل
جميع أنواع النماذج الأخرى.
مثال
runCode({field1: 123, field2: 'value'});