__tcfapi notikumu klausītāju izmantošana: izstrādātāju pamācība piekrišanu ņemošiem skriptiem

Kāpēc skriptiem jāklausās, nevis jāaptauja

Jebkuram skriptam, kas ir atkarīgs no piekrišanas — reklāmas tagam, analītikas ielādētājam, header bidding apvalkam — jāzina divas lietas: vai CMP jau ir pieņēmis lēmumu un kāds šis lēmums ir. Bieži pieļauta kļūda ir nolasīt sīkdatni lapas ielādes brīdī vai aptaujāt CMP ar taimeri, līdz kaut kas parādās. Abas pieejas salūst paredzamā veidā: sīkdatnes formāts ir CMP iekšēja lieta un var mainīties, bet aptaujāšana vai nostrādā pārāk agri, vai velti gaida.

IAB TCF šim uzdevumam definē standarta JavaScript saskarni: funkciju __tcfapi. Šī pamācība izskaidro komandas, kas jums tiešām vajadzīgas, notikumus, ko saņemsiet, un kļūdas, kas ražošanā parādās visbiežāk.

Stub un rinda

No TCF CMP tiek sagaidīts, ka tas lapā pēc iespējas agrāk, pirms pilnā CMP skripta ielādes, ievieto nelielu stub. Stub definē window.__tcfapi un ievieto rindā visus izsaukumus, kas veikti, pirms CMP ir gatavs. Kad CMP ielāde ir pabeigta, tas apstrādā rindu un atbild uz katru izsaukumu.

Tieši tāpēc citi skripti var droši izsaukt __tcfapi uzreiz: ja stub lapā ir pirms tiem, to izsaukumi netiek zaudēti. Ja skripts met kļūdu, jo __tcfapi nav definēts, stub vai nu trūkst, vai tiek ielādēts par vēlu — labojiet ielādes secību, nevis pievienojiet atkārtotus mēģinājumus.

Komandas, kas ir svarīgas

ping

__tcfapi('ping', 2, callback) atgriež pamata statusu, negaidot lietotāja lēmumu. Atbildē ir iekļauts cmpLoaded, cmpStatus ar vērtību, piemēram, stub, loading, loaded vai error, un displayStatus ar vērtību visible, hidden vai disabled. Tā ziņo arī par gdprApplies, tiklīdz tas ir zināms. Izmantojiet to diagnostikai un lai izlemtu, vai TCF šim apmeklētājam vispār ir būtisks.

addEventListener

__tcfapi('addEventListener', 2, callback) ir komanda, ko vajadzētu izmantot lielākajai daļai integrāciju. Atgriezeniskā izsaukuma funkcija saņem tcData objektu un veiksmes karogu, un tā tiek izsaukta atkārtoti katru reizi, kad mainās piekrišanas stāvoklis. Kopš TCF v2.2 tas ir ieteicamais veids, kā iegūt piekrišanas datus; vecākā komanda getTCData tika atzīta par novecojušu.

removeEventListener

Katrs tcData objekts satur listenerId. Nododiet to funkcijai __tcfapi('removeEventListener', 2, callback, listenerId), kad jūsu skriptam atjauninājumi vairs nav vajadzīgi — piemēram, vienreizējam ielādētājam, kas lēmumu jau ir pieņēmis.

eventStatus nolasīšana

Svarīgākais lauks tcData ir eventStatus. Tam ir trīs vērtības:

Tipisks ielādētājs gaida vai nu tcloaded, vai useractioncomplete, un tikai tad pārbauda nolūkus un pārdevējus, kas tam vajadzīgi. Tas ignorē cmpuishown, izņemot, iespējams, lai reģistrētu, ka baneris parādījās.

Nolūku un pārdevēju pārbaude

Objektā tcData piekrišana un leģitīmās intereses tiek atklātas kā objekti, kas indeksēti pēc ID:

Pārbaudiet gan nolūku, gan pārdevēju. Nolūka piekrišana bez pārdevēja piekrišanas vai otrādi lielākajai daļai pārdevēju nav pietiekama datu apstrādei.

Iframe un starpkadru izsaukumi

Reklāmas un logrīki bieži darbojas iframe, kuri nevar piekļūt vecāklapas __tcfapi. TCF šo problēmu risina ar postMessage protokolu: CMP augšējai lapai pievieno kadru ar nosaukumu __tcfapiLocator, un kods iframe iekšienē var to atrast, nosūtīt ziņojumu __tcfapiCall un saņemt atbildi __tcfapiReturn. Lielākā daļa reklāmu SDK to jau dara. Ja rakstāt savu iframe kodu, ieviesiet to pašu shēmu, nevis lasiet sīkdatnes starp kadriem.

Biežākās kļūdas un kā tās pamanīt

  1. Rīcība pēc cmpuishown. Skripti, kas ielādējas, tiklīdz nostrādā jebkurš atgriezeniskais izsaukums, darbosies, pirms lietotājs ir izlēmis. Filtrējiet pēc eventStatus.
  2. Klausītāja noņemšana pārāk agri. Ja to noņemat pēc pirmā atgriezeniskā izsaukuma, palaidīsiet garām vēlāko useractioncomplete un nekad neielādēsities.
  3. Atsaukumu ignorēšana. Pastāvīgiem skriptiem jāturpina klausīties un jāapstājas vai jāpārkonfigurējas, kad piekrišana tiek atsaukta.
  4. gdprApplies ignorēšana. Ārpus TCF reģioniem nolūku objekti var būt tukši; uzskatīt to par “nav piekrišanas” nozīmē, ka var izslēgt ieņēmumus, kurus jums ir atļauts gūt.
  5. Veiksmes karoga nepārbaudīšana. Ja success ir false, reģistrējiet to; tas parasti liecina par bojātu CMP iestatījumu.

Integrācijas testēšana

Pārlūka konsolē izsauciet __tcfapi('ping', 2, console.log), lai pārliecinātos, ka CMP ir klāt, pēc tam reģistrējiet klausītāju ar console.log kā atgriezenisko izsaukumu un izejiet cauri baneram. Pirmajā apmeklējumā jums jāredz cmpuishown, kam seko useractioncomplete, bet pēc pārlādes — tcloaded. Atkārtojiet ar «pieņemt visu», «noraidīt visu» un pielāgotu izvēli un pārliecinieties, ka jūsu skripts katrā gadījumā darbojas pareizi.

Galvenie secinājumi

← Blogs Lasīt visu →