이틀 동안 Facebook에 게시 한 URL에 매개 변수가 추가 된 것을 확인했습니다.
?fbclid=uFCrBkUgEvKg...
더 정확하게 말하면 다음과 같습니다.http://example.com?fbclid=uFCrBkUgEvKg...
이 매개 변수가 무엇을하는지 아는 사람이 있습니까?
그것은 무엇이며 개발자의 용도는 무엇입니까?
귀하의 의견에 감사드립니다.
이틀 동안 Facebook에 게시 한 URL에 매개 변수가 추가 된 것을 확인했습니다.
?fbclid=uFCrBkUgEvKg...
더 정확하게 말하면 다음과 같습니다.http://example.com?fbclid=uFCrBkUgEvKg...
이 매개 변수가 무엇을하는지 아는 사람이 있습니까?
그것은 무엇이며 개발자의 용도는 무엇입니까?
귀하의 의견에 감사드립니다.
답변:
내가 알고 gclid
에 대한 짧은 ( G oogle CL 싫어지기 아이디 entifier)
그것은 고유의 추적 매개 변수 것을 구글 귀하의 Google 광고 간의 전송 정보가 사용하는 계정과 Google 웹 로그 분석 계정.
Facebook 은 fbclid
추적 분석 시스템을 개선하기 위해 똑같은 일 또는 유사한 일을해야합니다 .
이것은 나를 도왔습니다 : https://greasyfork.org/en/forum/discussion/44083/fbclid-tracking-parameter-attached-by-facebook
다음은 링크에서 인용 한 것입니다.
이 코드를 .htaccess 파일에 넣으십시오.
RewriteCond %{QUERY_STRING} "fbclid=" [NC] RewriteRule (.*) /$1? [R=301,L]
WordPress에서 작업하는 경우 :
RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} "fbclid=" [NC] RewriteRule (.*) /$1? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
이 매개 변수를 제거하는 또 다른 방법은 (사용자가 URL을 수동으로 제거하지 않고도 공유 할 수 있도록) JavaScript 및 history.replaceState
.
모든 크레딧은 원저자에게 전달됩니다-https: //www.michalspacek.cz/zmena-url-a-skryvani-fbclid-pomoci-javascriptu
링크의 코드 :
(function() {
var param = 'fbclid';
if (location.search.indexOf(param + '=') !== -1) {
var replace = '';
try {
var url = new URL(location);
url.searchParams.delete(param);
replace = url.href;
} catch (ex) {
var regExp = new RegExp('[?&]' + param + '=.*$');
replace = location.search.replace(regExp, '');
replace = location.pathname + replace + location.hash;
}
history.replaceState(null, '', replace);
}
})();
내가 알기로 매개 변수는 사이트 방문자를 추적하는 수단이므로 사이트에 Facebook의 광고가 포함되어있는 경우 방문자의 기록 된 검색 습관에 맞게 사용자 정의 할 수 있습니다.
mod_rewrite
위 의 Apache 솔루션 은 전체 쿼리 문자열을 제거하기 때문에 문제가 있습니다. URL에 이미 쿼리 문자열이있는 경우 이로 인해 중단됩니다. fbclid
매개 변수 만 제거하려면 Facebook이 항상 URL에 추가하므로 항상 마지막이라는 점에 유의하는 것이 좋습니다. 이는 mod_rewrite
코드를 약간 단순화합니다 . 이것이 제가하는 것입니다:
# Strip Facebook spyware tokens
RewriteCond %{REQUEST_METHOD} =GET [NC,OR]
RewriteCond %{REQUEST_METHOD} =HEAD [NC]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+$ [NC]
RewriteRule ^/?(.*)$ /$1?%1 [NE,L,R=301,E=limitcache:1]
Header always set Cache-Control "max-age=604800" env=limitcache
E=limitcache:1
플래그와 Header
지시어는 301 리디렉션이 캐시되는 시간을 제한하는 것입니다. 기본적으로 많은 브라우저는 문자 그대로 영원히 캐시합니다 . 이를 통해 1 주 (또는 604,800 초)로 단축됩니다. 나는 이것을 생각하는 데 소수 일지 모르지만 그것은 나에게 좋은 습관처럼 보입니다. fbclid
토큰 이 얼마나 오래 지속 되는지는 모르겠지만 토큰이 오래 지속되면 Facebook이 방문자를 동일한 URL로 오랫동안 안내 할 것이며 Facebook의 타겟 광고를 지원하고 싶거나 시작하는 경우 사용하여 fbclid
당신이 필요로하는 것을 다른 기능을, 당신은이 영구적으로 캐시 리디렉션 다시 물어 올 찾을 수 있습니다. 그러나 위험을 감수하려면 Header
지시문과 E=limitcache:1
플래그를 모두 삭제할 수 있습니다 .
의 두 가지 테스트는 %{REQUEST_METHOD}
Apache가 POST 요청 (또는 관련있는 경우 PUT 또는 DELETE와 같은 더 난해한 요청)을 리디렉션하지 못하도록하는 것입니다. 대부분의 브라우저는 RFC 7231에서 명시 적으로 허용하는 301 또는 302 리디렉션에서 요청을 GET 요청으로 변경합니다 . 거기에있다 새로운 308 리디렉션 코드 의 방법을 다시 작성하지 않아야합니다,하지만 불행히도 그것은 윈도우 7에서 Internet Explorer에서 지원되지 않는 (아마 없을 것이다 않음).
Header
이것을 사용하는 경우 해당 줄을 제거 하면 fbclid
. "영구적 인"리디렉션에는 만료일이있을 수 있다는 사실이 재미 있지만 이것이 웹의 유기적 특성입니다. :-)