__tcfapi நிகழ்வுக் கேட்பிகளைப் பயன்படுத்துதல்: ஒப்புதல்-அறிந்த ஸ்கிரிப்ட்களுக்கான டெவலப்பர் பயிற்சி
உங்கள் ஸ்கிரிப்ட்கள் ஏன் கேட்க வேண்டும், வினவக் கூடாது
ஒப்புதலைச் சார்ந்த எந்த ஸ்கிரிப்ட்டும் — விளம்பர டேக், பகுப்பாய்வு லோடர், ஹெடர் பிட்டிங் ரேப்பர் — இரண்டு விஷயங்களை அறிய வேண்டும்: CMP-க்கு இதுவரை முடிவு உள்ளதா, அந்த முடிவு என்ன. பொதுவான தவறு: பக்கம் ஏற்றப்படும்போது குக்கீயைப் படிப்பது, அல்லது ஏதாவது தோன்றும் வரை டைமர் மூலம் CMP-ஐத் திரும்பத் திரும்ப வினவுவது. இரு அணுகுமுறைகளும் முன்கூட்டியே ஊகிக்கக்கூடிய வகையில் உடைகின்றன: குக்கீ வடிவம் CMP-இன் உள் விவகாரம், மாறக்கூடும்; வினவல் மிக விரைவில் இயங்குகிறது அல்லது காத்திருந்து நேரத்தை வீணாக்குகிறது.
IAB TCF இந்த வேலைக்கே ஒரு தரநிலை JavaScript இடைமுகத்தை வரையறுக்கிறது: __tcfapi செயல்பாடு. உண்மையில் உங்களுக்குத் தேவையான கட்டளைகள், நீங்கள் பெறும் நிகழ்வுகள், தயாரிப்பில் அடிக்கடி தோன்றும் பிழைகள் ஆகியவற்றை இந்தப் பயிற்சி படிப்படியாக விளக்குகிறது.
ஸ்டப்பும் வரிசையும்
முழு CMP ஸ்கிரிப்ட் ஏற்றப்படுவதற்கு முன்பே, முடிந்தவரை விரைவாக, பக்கத்தில் ஒரு சிறிய ஸ்டப்-ஐ CMP வைக்க வேண்டும் என எதிர்பார்க்கப்படுகிறது. ஸ்டப் window.__tcfapi-ஐ வரையறுக்கிறது; CMP தயாராவதற்கு முன் செய்யப்பட்ட அழைப்புகளை வரிசையில் நிறுத்துகிறது. CMP ஏற்றுதலை முடித்ததும், வரிசையைச் செயலாக்கி ஒவ்வொரு அழைப்புக்கும் பதிலளிக்கிறது.
இதனால்தான் பிற ஸ்கிரிப்ட்கள் உடனடியாக __tcfapi-ஐ அழைப்பது பாதுகாப்பானது: அவற்றுக்கு முன் ஸ்டப் பக்கத்தில் இருக்கும் வரை, அவற்றின் அழைப்புகள் இழக்கப்படாது. __tcfapi வரையறுக்கப்படவில்லை என ஸ்கிரிப்ட் பிழை தந்தால், ஸ்டப் இல்லை அல்லது மிகத் தாமதமாக ஏற்றப்படுகிறது — மறுமுயற்சிகளைச் சேர்ப்பதற்குப் பதிலாக ஏற்றுதல் வரிசையைச் சரிசெய்யுங்கள்.
முக்கியமான கட்டளைகள்
ping
__tcfapi('ping', 2, callback) பயனரின் முடிவுக்காகக் காத்திருக்காமல் அடிப்படை நிலையைத் தருகிறது. பதிலில் cmpLoaded, stub, loading, loaded அல்லது error போன்ற cmpStatus, மேலும் visible, hidden அல்லது disabled என்ற displayStatus உள்ளடங்கும். தெரிந்தவுடன் gdprApplies-ஐயும் தெரிவிக்கும். நோயறிதலுக்கும், இந்தப் பார்வையாளருக்கு TCF பொருத்தமானதா என்பதை முடிவு செய்யவும் இதைப் பயன்படுத்துங்கள்.
addEventListener
__tcfapi('addEventListener', 2, callback) பெரும்பாலான ஒருங்கிணைப்புகள் பயன்படுத்த வேண்டிய கட்டளை. கால்பேக் ஒரு tcData பொருளையும் வெற்றிக் கொடியையும் பெறுகிறது; ஒப்புதல் நிலை மாறும் ஒவ்வொரு முறையும் மீண்டும் அழைக்கப்படுகிறது. TCF v2.2 முதல், ஒப்புதல் தரவைப் பெற இதுவே பரிந்துரைக்கப்பட்ட வழி; பழைய getTCData கட்டளை நீக்கத்துக்குரியதாக அறிவிக்கப்பட்டது.
removeEventListener
ஒவ்வொரு tcData பொருளிலும் listenerId இருக்கும். உங்கள் ஸ்கிரிப்ட்டுக்கு இனி புதுப்பிப்புகள் தேவையில்லாதபோது — எடுத்துக்காட்டாக, ஏற்கெனவே முடிவு எடுத்துவிட்ட ஒருமுறை லோடர் — அதை __tcfapi('removeEventListener', 2, callback, listenerId)-க்கு அனுப்புங்கள்.
eventStatus-ஐப் படித்தல்
tcData-இல் முக்கிய புலம் eventStatus. இதற்கு மூன்று மதிப்புகள் உள்ளன:
tcloaded— CMP சரியான சேமிக்கப்பட்ட முடிவைக் கண்டது; பேனர் காட்டப்படாது. நீங்கள் உடனே தரவின்படி செயல்படலாம்.cmpuishown— பேனர் காட்டப்படுகிறது. தரவு முந்தைய நிலையைப் பிரதிபலிக்கிறது, ஆனால் பயனர் அதை மாற்றவிருக்கலாம்.useractioncomplete— பயனர் இப்போதுதான் ஒரு தேர்வைச் செய்தார் அல்லது உறுதிப்படுத்தினார். புதிய தரவின்படி செயல்படுங்கள்.
வழக்கமான லோடர் tcloaded அல்லது useractioncomplete இரண்டில் ஒன்றுக்காகக் காத்திருந்து, தனக்குத் தேவையான நோக்கங்களையும் விற்பனையாளர்களையும் சரிபார்க்கும். பேனர் தோன்றியது என்று பதிவுசெய்வதைத் தவிர cmpuishown-ஐப் புறக்கணிக்கும்.
நோக்கங்களையும் விற்பனையாளர்களையும் சரிபார்த்தல்
tcData-க்குள் ஒப்புதலும் நியாயமான ஆர்வமும் ID-ஆல் திறவுகோலிடப்பட்ட பொருட்களாக வெளிப்படுகின்றன:
tcData.purpose.consents[1]— நோக்கம் 1-க்கான (சாதனச் சேமிப்பு) ஒப்புதல்.tcData.purpose.legitimateInterests[7]— நோக்கம் 7-க்கான நியாயமான ஆர்வ நிலை.tcData.vendor.consents[ID]மற்றும்tcData.vendor.legitimateInterests[ID]— விற்பனையாளரின் Global Vendor List ID-ஐப் பயன்படுத்தி, விற்பனையாளர்வாரி நிலை.tcData.gdprApplies— இந்தப் பார்வையாளருக்கு GDPR பொருந்தும் என CMP தீர்மானித்ததா. இதுfalseஎனில், உங்கள் ஸ்கிரிப்ட் அதன் TCF அல்லாத தர்க்கத்தைப் பின்பற்ற வேண்டும்.tcData.tcString— குறியாக்கப்பட்ட string; இதை எதிர்பார்க்கும் கூட்டாளர்களுக்கு நீங்கள் அனுப்புகிறீர்கள்.
நோக்கம், விற்பனையாளர் இரண்டையும் சரிபாருங்கள். விற்பனையாளர் ஒப்புதல் இல்லாத நோக்க ஒப்புதல், அல்லது அதற்கு நேர்மாறு, பெரும்பாலான விற்பனையாளர்கள் தரவைச் செயலாக்கப் போதாது.
iframe-களும் குறுக்கு-ஃபிரேம் அழைப்புகளும்
விளம்பரங்களும் விட்ஜெட்களும் பெரும்பாலும் பெற்றோர் பக்கத்தின் __tcfapi-ஐப் பார்க்க முடியாத iframe-களுக்குள் இயங்குகின்றன. TCF இதை postMessage நெறிமுறையால் தீர்க்கிறது: CMP மேல்நிலைப் பக்கத்தில் __tcfapiLocator என்ற பெயருடைய ஃபிரேமைச் சேர்க்கிறது; iframe-க்குள் உள்ள குறியீடு அதைக் கண்டறிந்து, __tcfapiCall செய்தியை அனுப்பி, __tcfapiReturn பதிலைப் பெறலாம். பெரும்பாலான விளம்பர SDK-கள் ஏற்கெனவே இதைச் செய்கின்றன. உங்கள் சொந்த iframe குறியீட்டை எழுதினால், ஃபிரேம்களுக்கிடையே குக்கீகளைப் படிப்பதற்குப் பதிலாக அதே முறையைச் செயல்படுத்துங்கள்.
பொதுவான பிழைகளும் அவற்றை எப்படிக் கண்டறிவதும்
cmpuishownஅடிப்படையில் செயல்படுதல். எந்தக் கால்பேக் இயங்கியவுடனும் ஏற்றப்படும் ஸ்கிரிப்ட்கள் பயனர் முடிவு செய்வதற்கு முன்பே இயங்கும்.eventStatusமூலம் வடிகட்டுங்கள்.- கேட்பியை மிக விரைவில் அகற்றுதல். முதல் கால்பேக்குக்குப் பிறகு அகற்றினால், பின்னர் வரும்
useractioncomplete-ஐத் தவறவிடுவீர்கள்; ஒருபோதும் ஏற்றப்படாது. - திரும்பப் பெறுதல்களைப் புறக்கணித்தல். நிலையான ஸ்கிரிப்ட்கள் தொடர்ந்து கேட்டு, ஒப்புதல் திரும்பப் பெறப்படும்போது தங்களை நிறுத்த வேண்டும் அல்லது மறுகட்டமைக்க வேண்டும்.
gdprApplies-ஐப் புறக்கணித்தல். TCF பகுதிகளுக்கு வெளியே நோக்கப் பொருட்கள் காலியாக இருக்கலாம்; அதை “ஒப்புதல் இல்லை” எனக் கருதுவது நீங்கள் ஈட்ட அனுமதிக்கப்பட்ட வருவாயை அணைத்துவிடக்கூடும்.- வெற்றிக் கொடியைச் சரிபார்க்காதது.
successfalse ஆக இருக்கும்போது அதைப் பதிவுசெய்யுங்கள்; இது பொதுவாக உடைந்த CMP அமைப்பைக் குறிக்கிறது.
உங்கள் ஒருங்கிணைப்பைச் சோதித்தல்
உலாவிக் கன்சோலில், CMP இருப்பதை உறுதிப்படுத்த __tcfapi('ping', 2, console.log)-ஐ அழைத்து, பிறகு கால்பேக்காக console.log உடன் ஒரு கேட்பியைப் பதிவுசெய்து பேனர் வழியாகக் கிளிக் செய்யுங்கள். முதல் வருகையில் cmpuishown-ஐத் தொடர்ந்து useractioncomplete-ஐயும், மறுஏற்றத்தில் tcloaded-ஐயும் காண வேண்டும். அனைத்தையும் ஏற்றல், அனைத்தையும் நிராகரித்தல், தனிப்பயன் தேர்வு ஆகியவற்றுடன் மீண்டும் செய்து, ஒவ்வொரு சூழலிலும் உங்கள் ஸ்கிரிப்ட் சரியாக நடந்துகொள்கிறதா என்பதை உறுதிப்படுத்துங்கள்.
முக்கியக் குறிப்புகள்
- CMP குக்கீகளைப் படிப்பதற்கோ வினவுவதற்கோ பதிலாக
__tcfapi-ஐப் பயன்படுத்துங்கள். - API-ஐ அழைக்கும் எந்த ஸ்கிரிப்ட்டுக்கும் முன் CMP ஸ்டப் ஏற்றப்படுவதை உறுதிசெய்யுங்கள்.
addEventListener-ஐப் பயன்படுத்திtcloadedஅல்லதுuseractioncompleteஇல் மட்டுமே செயல்படுங்கள்.- நோக்கம், விற்பனையாளர் நிலை இரண்டையும் சரிபார்த்து
gdprApplies-ஐ மதியுங்கள். - iframe-களுக்குள்
__tcfapiLocatorpostMessage முறையைப் பயன்படுத்துங்கள்.