Kutumia Wasikilizaji wa Matukio wa __tcfapi: Mafunzo kwa Wasanidi wa Hati Zinazozingatia Idhini
Kwa Nini Hati Zako Zinapaswa Kusikiliza, Si Kuuliza Mara kwa Mara
Hati yoyote inayotegemea idhini — lebo ya tangazo, kipakiaji cha uchanganuzi, kifungashio cha header bidding — inahitaji kujua mambo mawili: kama CMP tayari ina uamuzi, na uamuzi huo ni upi. Kosa la kawaida ni kusoma kidakuzi wakati wa kupakia ukurasa, au kuuliza CMP kwa kipima muda hadi kitu kitokee. Njia zote mbili huvunjika kwa njia zinazotabirika: muundo wa kidakuzi ni wa ndani wa CMP na unaweza kubadilika, na kuuliza mara kwa mara ama huwaka mapema mno au hupoteza muda kusubiri.
IAB TCF inafafanua kiolesura cha kawaida cha JavaScript kwa kazi hii hasa: kitendakazi cha __tcfapi. Mafunzo haya yanapitia amri unazohitaji kweli, matukio utakayopokea, na hitilafu zinazojitokeza mara nyingi zaidi katika uzalishaji.
Stub na Foleni
CMP ya TCF inatarajiwa kuweka stub ndogo kwenye ukurasa mapema iwezekanavyo, kabla hati kamili ya CMP haijapakiwa. Stub inafafanua window.__tcfapi na kuweka kwenye foleni miito yoyote iliyofanywa kabla CMP haijawa tayari. CMP inapomaliza kupakia, huchakata foleni na kujibu kila mwito.
Hiki ndicho kinachofanya iwe salama kwa hati nyingine kuita __tcfapi mara moja: mradi stub iko kwenye ukurasa kabla yao, miito yao haipotei. Ikiwa hati inatupa hitilafu kwa sababu __tcfapi haijafafanuliwa, stub ama haipo au inapakiwa kuchelewa mno — rekebisha mpangilio wa upakiaji badala ya kuongeza majaribio ya kurudia.
Amri Zinazojali
ping
__tcfapi('ping', 2, callback) hurejesha hali ya msingi bila kusubiri uamuzi wa mtumiaji. Jibu linajumuisha cmpLoaded, cmpStatus kama stub, loading, loaded au error, na displayStatus ya visible, hidden au disabled. Pia huripoti gdprApplies inapojulikana. Itumie kwa uchunguzi na kuamua kama TCF inahusika kabisa kwa mgeni huyu.
addEventListener
__tcfapi('addEventListener', 2, callback) ndiyo amri ambayo miunganisho mingi inapaswa kutumia. Kipigiwa-simu hupokea kitu cha tcData na bendera ya mafanikio, na huitwa tena kila hali ya idhini inapobadilika. Tangu TCF v2.2, hii ndiyo njia inayopendekezwa ya kupata data ya idhini; amri ya zamani ya getTCData iliachwa.
removeEventListener
Kila kitu cha tcData hubeba listenerId. Kipitishe kwa __tcfapi('removeEventListener', 2, callback, listenerId) hati yako isipohitaji masasisho tena — kwa mfano, kipakiaji cha mara moja ambacho tayari kimefanya uamuzi wake.
Kusoma eventStatus
Sehemu muhimu katika tcData ni eventStatus. Kuna thamani tatu:
tcloaded— CMP ilipata uamuzi halali uliohifadhiwa na hakuna bango litakaloonyeshwa. Unaweza kuchukua hatua kwa data mara moja.cmpuishown— bango linaonyeshwa. Data inaakisi hali ya awali, lakini mtumiaji anaweza kuwa karibu kuibadilisha.useractioncomplete— mtumiaji ametoka kufanya au kuthibitisha chaguo. Chukua hatua kwa data mpya.
Kipakiaji cha kawaida husubiri ama tcloaded au useractioncomplete, kisha hukagua madhumuni na wauzaji kinaohitaji. Hupuuza cmpuishown isipokuwa labda kurekodi kwamba bango lilitokea.
Kukagua Madhumuni na Wauzaji
Ndani ya tcData, idhini na maslahi halali hufichuliwa kama vitu vilivyopangwa kwa kitambulisho:
tcData.purpose.consents[1]— idhini kwa Madhumuni ya 1 (uhifadhi wa kifaa).tcData.purpose.legitimateInterests[7]— hali ya maslahi halali kwa Madhumuni ya 7.tcData.vendor.consents[ID]natcData.vendor.legitimateInterests[ID]— hali kwa kila muuzaji, ukitumia kitambulisho cha muuzaji katika Global Vendor List.tcData.gdprApplies— kama CMP iliamua kwamba GDPR inatumika kwa mgeni huyu. Ikiwa nifalse, hati yako inapaswa kufuata mantiki yake isiyo ya TCF.tcData.tcString— mfuatano uliosimbwa, unaoupitisha kwa washirika wanaoutarajia.
Kagua madhumuni na muuzaji wote wawili. Idhini ya madhumuni bila idhini ya muuzaji, au kinyume chake, haitoshi kwa wauzaji wengi kuchakata data.
Iframe na Miito ya Kuvuka Fremu
Matangazo na wijeti mara nyingi hufanya kazi ndani ya iframe ambazo haziwezi kuona __tcfapi ya ukurasa mzazi. TCF hulitatua hili kwa itifaki ya postMessage: CMP huongeza fremu iitwayo __tcfapiLocator kwenye ukurasa wa juu, na msimbo ndani ya iframe unaweza kuipata, kutuma ujumbe wa __tcfapiCall na kupokea jibu la __tcfapiReturn. SDK nyingi za matangazo tayari hufanya hivi. Ukiandika msimbo wako mwenyewe wa iframe, tekeleza mchoro huohuo badala ya kusoma vidakuzi kuvuka fremu.
Hitilafu za Kawaida na Jinsi ya Kuzibaini
- Kuchukua hatua kwa
cmpuishown. Hati zinazopakia mara tu kitendakazi cha callback chochote kinapowaka hufanya kazi kabla mtumiaji hajaamua. Chuja kwaeventStatus. - Kuondoa msikilizaji mapema mno. Ukimwondoa baada ya kitendakazi cha callback cha kwanza, utakosa
useractioncompleteya baadaye na hutapakia kamwe. - Kupuuza kuondolewa kwa idhini. Hati za kudumu zinapaswa kuendelea kusikiliza na kusimama au kujisanidi upya idhini inapoondolewa.
- Kupuuza
gdprApplies. Nje ya maeneo ya TCF, vitu vya madhumuni vinaweza kuwa tupu; kulichukulia hilo kama “hakuna idhini” kunaweza kuzima mapato ambayo unaruhusiwa kuyapata. - Kutokagua bendera ya mafanikio.
successinapokuwa false, irekodi; kwa kawaida inaashiria usanidi uliovunjika wa CMP.
Kujaribu Muunganisho Wako
Kwenye koni ya kivinjari, ita __tcfapi('ping', 2, console.log) ili kuthibitisha kwamba CMP ipo, kisha sajili msikilizaji ukiwa na console.log kama kitendakazi cha callback na upitie bango. Unapaswa kuona cmpuishown ikifuatiwa na useractioncomplete katika ziara ya kwanza, na tcloaded baada ya kupakia upya. Rudia kwa kukubali yote, kukataa yote na uteuzi maalum, na uthibitishe kwamba hati yako inafanya kazi ipasavyo katika kila hali.
Mambo Muhimu ya Kukumbuka
- Tumia
__tcfapibadala ya kusoma vidakuzi vya CMP au kuuliza mara kwa mara. - Hakikisha stub ya CMP inapakia kabla ya hati yoyote inayoita API.
- Tumia
addEventListenerna uchukue hatua kwatcloadedauuseractioncompletepekee. - Kagua hali ya madhumuni na ya muuzaji, na uheshimu
gdprApplies. - Tumia mchoro wa postMessage wa
__tcfapiLocatorndani ya iframe.