- Google Adsenseãèªã¿è¾¼ã¾ããªãã£ãæãæ¤ç¥ãã¦è¦ç´ ãåé¤ããå¦çãæ¸ããã
- ãããã¦ãã¿ãã
Google Adsenseãèªã¿è¾¼ã¾ããªãã£ãæãæ¤ç¥ãã¦è¦ç´ ãåé¤ããå¦çãæ¸ããã
ã¾ã æ°æã¡ããããããããã¦ããã©ããåã¯å±è²¬ããããã¨ãã·ã§ããã³ã°ãªãã¨ãããã¨ãæ°æ¥ããæ°é±éã«ããã¦ã¡ã³ã¿ã«ããã¦ã³ããç¶æ
ã«é¥ããæèè½åãæ¥µç«¯ã«è½ã¡ããåçç¨èªã§ã¯ãã®ç¶æ
ã¯ãç¥çµç¼ãä»ãç¶æ
ãã¨å¼ãã§ããããã®ç¶æ
ã®æã«ç§äºã§ããã°ãæ¸ãã¦ãããããªãã¨ãæ¸ããªãã¯ãã§ãããæ¥ãæãããã¯ãã©ã¤ãã¼ããªäºã¨ã¯é¢ä¿ããªãäºãæ¸ããã¨æãã
æè¿åã¯è²ã ã¨ãã®ããã°ã®ã«ã¹ã¿ãã¤ãºãè¡ãªã£ã¦ããã¡ãã£ã¨åã®è¨äºã§ãæ¸ãããã©ãããã°ã«çµã¿è¾¼ãã§ããAIæ©è½ã®å¼·åã§ããã¨ããåºåã®è¡¨ç¤ºå¨ãã®ã«ã¹ã¿ãã¤ãºããã¦ããCloudflareãçµã¿è¾¼ãã§ã¿ã¦ãã£ãã·ã¥ã使ã£ã¦ãµã¤ãã®è¡¨ç¤ºãé«éåããããªã©ã¨ä¼ãã§ã¿ãããã©ããã¯ã¦ãªããã°ã®ç¬èªãã¡ã¤ã³ã®ä»æ§ã§ã¯Cloudflareã®ãããã·ã使ããªãããã§ãããæ®å¿µã
ãã®ããã°ã®ç±å¿ãªèªè 諸æ°ãªããæ°ã¥ããããããªãããæè¿ã¯ããã°ã®ããããã¼ã¸ãè²ã ã¨ããã£ã¦ãããã¡ãã£ã¨ãè¨äºãªã¹ãã®éã«Googleã¢ãã»ã³ã¹ã®ã¤ã³ãã£ã¼ãåºåãJavaScriptã§æ¿å ¥ãããã¨ãã¦ããããããã¨ããããããã§èª¿ã¹ããChatGPTã¨å£æã¡ããªããè²ã ã¨è©¦ãã¦ããã
è¨äºãªã¹ãã«ã¤ã³ãã£ã¼ãåºåãçµã¿è¾¼ãã¹ã¯ãªããèªä½ã¯ããããã§è²ã ã¨è»¢ãã£ã¦ããããã®è¾ºãã使ãã°ç°¡åã«å®ç¾ã§ããã®ã ãã©ãããã§å¤§ããªDOMãç»é¢ãã¼ãå¾ããæ¿å ¥ããã¦CLSãçºçãã¦SEOçã«æªå½±é¿ãåºãããã¨ããã¢ãã»ã³ã¹ããåºåãªãã¸ã§ã¯ããéä¿¡ããã¦ããªãæã«è¨äºãªã¹ãã«ç©ºã®å¤ãªæ®éª¸ã ããæ®ãã®ãæ°ã«é£ããªãã®ã§ããã
ããã§ãGoogleã¢ãã»ã³ã¹ã®ä»æ§æ¸ãè²ã ã¨èª¿ã¹ã¦ã¿ããã¨ããJavaScriptã®ããã¥ã¡ã³ããªãããè²ã ã¨ã²ã£ããè¿ãã¦ã¿ã¦ãè¨äºä¸è¦§ã«ã¤ã³ãã£ã¼ãåºåãé å»¶èªã¿è¾¼ã¿ã§ç»é¢ãã¼ã3ç§å¾ãããã¯ã¹ã¯ãã¼ã«ãã¿ããã®å¾ã«èªã¿è¾¼ãã§ããªããã¤ã¢ãã»ã³ã¹ããåºåãé ä¿¡ããã¦ããªãæã¯ç©ºã®DOMãåé¤ããå¦çãæ¸ãã¦ã¿ãã
ãããªãäºããã£ã¦ã人ãããªãããªã¼ï¼ãã¨ããããæ¢ã£ãã¨ãããReactã§ã¯ãããã©ãã®ãããªæãã§Googleã¢ãã»ã³ã¹ãèªã¿è¾¼ã¾ããªãæã¯åé¤ããå¦çãæ¸ãã¦ã人ãããã®ã§ããã¡ããåèã«ããªãã使ãã¦ã¿ãã
ç°¡åã«ä»æ§ã説æããã¨ãGoogleã¢ãã»ã³ã¹ã¯åºåã®é ä¿¡ç¶æ³ããdata-ad-statusãã¨ãããã©ã¡ã¼ã¿ã§è¡¨ç¤ºãã¦ããããã¡ãã data-ad-status="unfilled" ã®æã¯åºåãé ä¿¡ããã¦ããªãã®ã§ããã
JavaScriptã§ç¨æããã¦ããMutationObserverã使ãã°ãåçã«ãã®data-ad-statusã夿´ããããã©ãããç£è¦ãããã¨ãã§ãããåºåè¦ç´ ã®ãã¼ãå¾ãdata-ad-statusãä¸ç§çµã£ã¦ãunfilledã®æã«ã¯ãã®ã¿ã°ãåé¤ãããããªå¦çãæ¸ãã¦ã¿ãã
MutationObserverã¨ããã®ã¯ç¹å®ã®DOMã®ç¶æ³ãå¤åãã§ãããªããµã¼ããä½ããã¨ãã§ãã颿°ã§ãããããã§Googleã¢ãã»ã³ã¹ã®insè¦ç´ ã®data-ad-statusãç£è¦ãã¦ã夿´ããã£ãæã«ããªã¬ã¼ãããããªå¦çã«ãã¦ããã°ãåºåãèªã¿è¾¼ã¾ããªãã£ãæã«å¾ãããã®è¦ç´ ãåé¤ããå¦çãæ¸ãã®ãå¯è½ã§ããã
è¦ããã«ã¾ãããããªæãã§åçã«DOMã®å¤æ´ãç£è¦ã§ãã颿°ã§ãããDOMã夿´ãããã¿ã¤ãã³ã°ã§ãã¾ãã¾ãªå¦çãããªã¬ã¼ã§ããã®ã§ããã
<!DOCTYPE html> <html> <head> <title>MutationObserver Example</title> </head> <body> <div id="example">Hello, world!</div> <button id="change-attribute">Change Attribute</button> <script> // ç£è¦å¯¾è±¡ã®è¦ç´ const targetNode = document.getElementById('example'); // ã³ã¼ã«ããã¯é¢æ° const callback = function(mutationsList, observer) { for (let mutation of mutationsList) { if (mutation.type === 'attributes') { console.log('The ' + mutation.attributeName + ' attribute was modified.'); } } }; // MutationObserverã®ã¤ã³ã¹ã¿ã³ã¹ã使 const observer = new MutationObserver(callback); // ç£è¦ãã夿´ã®ç¨®é¡ãæå® const config = { attributes: true }; // ç£è¦ã®éå§ observer.observe(targetNode, config); // ãã¿ã³ãã¯ãªãã¯ããã¨ãã«å±æ§ã夿´ document.getElementById('change-attribute').addEventListener('click', function() { targetNode.setAttribute('data-example', 'value'); }); </script> </body> </html>
ãããã颿°ã使ã£ã¦ã¿ã¦Adsenseã®data-ad-statusãç£è¦ãã¦åºåãèªã¿è¾¼ã¾ããªãæã¯ãã®è¦ç´ ãè¨äºä¸è¦§ããåé¤ããå¦çãæ¸ãã¦ã¿ãã®ã§ããããã°ããã¯ããã§éç¨ãã¦ã¿ã¦ãã°ããªãã確èªãã¦ã¿ããã¨æãã
ã¾ã¼ãã¢ãã»ã³ã¹ã«ã¤ãã¦ã¯ã©ããåå
¥ã¯ã¹ãºã¡ã®æ¶ã§ãããããªãããªãã§ã©ãã§ããããã ãã©ãåèªèº«ãããã°ãè¦ãã¨ãã«ã¬ã¼ã·ã³ã°ã«ã¼ã«ããããªã¹ãã³ãµã¼ã®ããã¼ãã¤ãã¦ããããªæãã§åºåãåºã¦ããããã®ã楽ããããããªããã°ã«ã¹ã¿ãã¤ãºãé¢ç½ããããã£ã¦ãããã¢ãã»ã³ã¹ã«é¢ãã¦ã¯å®æçã«æ±ãåºåä¸»ã¯æé¤ããããã«ããªãã¨æ±ãåºåãåºã¾ãã£ããã¨ããããã©ãããã°éã³ã¨ãã¦ã¯é¢ç½ãããããããæè¡çãªäºãè²ã
ã¨è©¦ãã¡ããã