Introdução
Essa API oferece ferramentas para interagir com as mensagens da guia "Privacidade e mensagens". Ele serve para diversas coisas:
- suprimir mensagens para qualquer usuário
- consultar o status de bloqueio de anúncios de um usuário
- renderizar um ponto de entrada para permitir que um usuário revogue o consentimento das regulamentações da UE
- substituir o link padrão "Não vender" das regulamentações estaduais dos EUA
- carregar condicionalmente suas tags do Google Ads e do Analytics com base no status do modo de consentimento do Google de acordo com as regulamentações da UE
e mais.
Você também pode usar essas ferramentas para coletar o consentimento do usuário usando protocolos padrão do setor:
- Consentimento do GDPR usando a especificação da TCF v2 do IAB
- Desativações das regulamentações estaduais dos EUA usando a especificação da GPP do IAB
Nesses casos, o status de consentimento é comunicado por essas APIs.
Você pode implantar essa funcionalidade de mensagens para o usuário no seu site de algumas maneiras:
- Na maioria dos casos, não é necessário adicionar tags novamente. Sua Tag do editor do Google ou tag do Google AdSense atual implanta mensagens para o usuário assim que a mensagem é publicada no produto relevante.
- Se você estiver usando a mensagem de recuperação de bloqueio de anúncios, adicione a tag de bloqueio de anúncios à página de forma explícita. Consulte as instruções de inclusão de tag do Ad Manager e do AdSense para mais informações.
googlefc
é o namespace global que a funcionalidade de mensagens ao usuário usa
para a API no JavaScript Window
.
Resumos de campos
Nome | Tipo | Definição |
---|---|---|
googlefc.controlledMessagingFunction
|
function(!Object) | Uma função que determina se é necessário continuar com o envio de mensagens. Essa funcionalidade é compatível com todos os tipos de mensagens. |
googlefc.callbackQueue
|
!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue | Referência à fila de retorno de chamada para execução assíncrona de consultas de mensagens do usuário. |
googlefc.CallbackQueue
|
!Object | O tipo do objeto da fila de callback. |
googlefc.AdBlockerStatusEnum
|
!Object<string, number> | Uma enumeração para representar o estado do bloqueador de anúncios do usuário. |
googlefc.AllowAdsStatusEnum
|
!Object<string, number> | Uma enumeração para representar o estado de permissão de anúncios do usuário. |
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum
|
!Object<string, number> | Uma enumeração para representar o status inicial de recusa dos estados dos EUA do usuário. Isso considera o estado dos EUA em que o usuário está localizado. |
googlefc.GoogleFcConsentModeUserStatus
|
!Object |
O tipo de retorno para googlefc.getGoogleConsentModeValues .
|
googlefc.ConsentModePurposeStatusEnum
|
!Object<string, number> | Uma enumeração para representar a decisão do usuário final para uma finalidade do modo de consentimento. |
googlefc.usstatesoptout.overrideDnsLink
|
undefined|boolean | Um booleano que pode ser definido como "true" para usar seu próprio link personalizado "Não vender nem compartilhar minhas informações pessoais". |
googlefc.ccpa.InitialCcpaStatusEnum
Legado. Prefira googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum .
|
!Object<string, number> | Uma enumeração para representar o status inicial das regulamentações estaduais dos EUA do usuário. |
googlefc.ccpa.overrideDnsLink
Legado. Prefira googlefc.usstatesoptout.overrideDnsLink .
|
undefined|boolean | Um booleano que pode ser definido como "true" para usar seu próprio link personalizado "Não vender nem compartilhar minhas informações pessoais". |
Resumos de métodos
Nome | Tipo de retorno | Definição |
---|---|---|
googlefc.showRevocationMessage()
|
indefinido |
Limpa o registro de consentimento e recarrega o script googlefc para mostrar a mensagem de consentimento aplicável ao usuário.
|
googlefc.getAdBlockerStatus()
|
número |
Retorna um valor em AdBlockerStatusEnum dependendo do status de bloqueio de anúncios do usuário.
|
googlefc.getAllowAdsStatus()
|
número |
Retorna um valor em AllowAdsStatusEnum dependendo do status de permissão de anúncios do usuário.
|
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()
|
número |
Retorna um valor em InitialUsStatesOptOutStatusEnum dependendo do status inicial de recusa das regulamentações estaduais dos EUA do usuário. Isso considera a regulamentação aplicável ao usuário com base na localização atual dele.
|
googlefc.usstatesoptout.openConfirmationDialog(function(boolean))
|
indefinido | Abre a caixa de diálogo de confirmação de desativação das regulamentações estaduais dos EUA se o link padrão "Não vender nem compartilhar" for substituído. |
googlefc.getGoogleConsentModeValues()
|
!Object |
Retorna um objeto googlefc.GoogleFcConsentModeUserStatus que contém os valores atuais do modo de consentimento para o usuário,
um para cada finalidade disponível do modo de consentimento.
|
googlefc.ccpa.getInitialCcpaStatus()
Legado. Prefira googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() .
|
número |
Retorna um valor em InitialCcpaStatusEnum dependendo do status inicial de recusa das regulamentações estaduais dos EUA do usuário.
|
googlefc.ccpa.openConfirmationDialog(function(boolean))
Legado. Prefira googlefc.usstatesoptout.openConfirmationDialog() .
|
indefinido | Abre a caixa de diálogo de confirmação de desativação das regulamentações estaduais dos EUA se o link padrão "Não vender nem compartilhar" for substituído. |
Como testar e depurar no seu site
A ferramenta Privacidade e mensagens oferece funcionalidades de depuração e teste que permitem ver como mensagens específicas, subtipos de mensagens ou combinações de mensagens aparecem no seu site.
Pré-requisitos:
- As mensagens que você quer visualizar precisam ser publicadas no site que está sendo testado.
Para ver uma prévia em tempo real no seu site, use os seguintes parâmetros de URL de depuração:
Parâmetro de depuração | Valores permitidos |
---|---|
fc |
alwaysshow (para acionar o modo de depuração/visualização) |
fctype |
ab (mensagens de bloqueio de anúncios), ccpa (mensagens de recusa da regulamentação estadual dos EUA), gdpr (mensagens de consentimento do GDPR), monetization (mensagens do Offerwall), usfl (mensagens de recusa da regulamentação estadual dos EUA, específicas da Flórida), usnat (mensagens de recusa da regulamentação estadual dos EUA, todos os estados aceitos, exceto a Flórida; equivalente a ccpa ) |
Confira alguns exemplos de como usar isso para visualizar no seu site (foo.com):
- Testar mensagens de recusa das regulamentações estaduais dos EUA --
http://foo.com/?fc=alwaysshow&fctype=ccpa
- Testar mensagens do GDPR --
http://foo.com/?fc=alwaysshow&fctype=gdpr
Campos: explicações e exemplos
googlefc.controlledMessagingFunction {function(!Object)}
Uma função que determina se as mensagens devem ser mostradas ou não. Ele pode ser usado para controlar a renderização de mensagens em condições especificadas pelo editor, como status de assinante ou URL da página.
Quando você define googlefc.controlledMessagingFunction
na janela antes do carregamento de outros scripts, as mensagens não são exibidas até que você chame message.proceed(boolean)
. Chamar message.proceed(true)
permite que as mensagens
continuem normalmente, enquanto chamar message.proceed(false)
impede que qualquer mensagem
apareça na visualização de página.
Exemplo: suponha que você tenha este script na página, que define uma função
assíncrona determineIfUserIsSubscriber()
que verifica se o usuário conectado é um
assinante.
<head>
<script>
window.isSubscriber = undefined;
function determineIfUserIsSubscriber() {
if (isSubscriber !== undefined) {
return isSubscriber;
}
return new Promise(resolve => {
setTimeout(() => {
// Change this to true if you want to test what subscribers would see.
window.isSubscriber = false;
resolve(window.isSubscriber);
}, 1000);
});
}
</script>
</head>
Este é um exemplo de como usar o
googlefc.controlledMessagingFunction
para mostrar a mensagem apenas para
não assinantes.
<head>
<script>
// Define googlefc and the controlled messaging function on the Window.
window.googlefc = window.googlefc || {};
googlefc.controlledMessagingFunction = async (message) => {
// Determine if the user is a subscriber asynchronously.
const isSubscriber = await determineIfUserIsSubscriber();
if (isSubscriber) {
// If the user is a subscriber, don't show any messages.
message.proceed(false);
} else {
// Otherwise, show messages as usual.
message.proceed(true);
}
}
</script>
</head>
Há também uma extensão desse recurso que permite aos publishers especificar que apenas o Offerwall deve ser suprimido. Use essa extensão de recurso para suprimir o Offerwall sem suprimir outros tipos de mensagens.
Para usar mensagens controladas específicas do Offerwall, transmita um parâmetro adicional para message.proceed()
, um Array
do tipo googlefc.MessageTypeEnum
.
Exemplo: este é um exemplo de uso de googlefc.controlledMessagingFunction
para
suprimir apenas a veiculação do Offerwall para assinantes, sem suprimir outros
tipos de mensagens:
<head>
<script>
// Define googlefc and the controlled messaging function on the Window.
window.googlefc = window.googlefc || {};
googlefc.controlledMessagingFunction = async (message) => {
// Determine if the Offerwall should display or not.
const shouldDisplayOfferwall = await determineIfUserIsSubscriber();
const applicableMessageTypes = [];
if (!shouldDisplayOfferwall) {
// Do not show the Offerwall, but allow other message types to display.
applicableMessageTypes.push(window.googlefc.MessageTypeEnum.OFFERWALL);
message.proceed(false, applicableMessageTypes);
} else {
// Otherwise, show messages as usual.
message.proceed(true);
}
}
</script>
</head>
Referência à fila de callback global para execução assíncrona de
chamadas relacionadas a mensagens. A única maneira compatível de invocar qualquer função é
adicionando-a ao callbackQueue
.
Como diferentes tipos de dados ficam disponíveis em momentos diferentes, uma função precisa ser adicionada como um mapa, com uma das seguintes strings como chave e a função a ser executada como valor.
Chaves compatíveis:
Nome da chave | Uso | Latência relativa |
---|---|---|
CONSENT_API_READY
|
As funções enviadas para a fila de callback com a chave CONSENT_API_READY são executadas quando as APIs para estruturas de consentimento compatíveis são definidas e podem ser chamadas. A partir desse ponto, a execução de qualquer função com chave CONSENT_API_READY adicionada posteriormente é síncrona. Consulte as seções sobre frameworks da IAB para detalhes específicos.
|
Baixo |
CONSENT_DATA_READY
|
As funções enviadas para a fila de retorno de chamada com a chave CONSENT_DATA_READY são executadas quando o consentimento do usuário coletado em uma estrutura compatível é conhecido (de uma execução anterior ou quando o usuário interage com a mensagem de consentimento). A partir desse ponto, a execução de qualquer função com chave CONSENT_DATA_READY adicionada posteriormente é síncrona.
|
Alta |
AD_BLOCK_DATA_READY
|
As funções enviadas para a fila de callback com a chave AD_BLOCK_DATA_READY são executadas quando os dados de bloqueio de anúncios ficam disponíveis no fluxo. A partir desse ponto, a execução de qualquer função com chave AD_BLOCK_DATA_READY adicionada posteriormente é síncrona.
|
Alta |
CONSENT_MODE_DATA_READY
|
As funções enviadas para a fila de callback com a chave CONSENT_MODE_DATA_READY são executadas quando os dados do [modo de consentimento](https://support.google.com/google-ads/answer/10000067) do Google (para uso com tags do Google Ads e do Analytics) ficam disponíveis no fluxo. Quando os dados do modo de consentimento estiverem prontos, você poderá acessar os valores a qualquer momento usando googlefc.getGoogleConsentModeValues .
|
Médio |
INITIAL_US_STATES_OPT_OUT_DATA_READY
|
As funções enviadas para a fila de callback com a chave INITIAL_US_STATES_OPT_OUT_DATA_READY são executadas quando os dados das regulamentações estaduais dos EUA ficam disponíveis no fluxo. Qualquer solicitação subsequente de dados de regulamentações estaduais dos EUA deve ser obtida chamando diretamente a API GPP (__gpp ).
|
Médio |
INITIAL_CCPA_DATA_READY
|
Chave legada para regulamentações estaduais dos EUA. Prefira INITIAL_US_STATES_OPT_OUT_DATA_READY . As funções enviadas à fila de callback com a chave INITIAL_CCPA_DATA_READY são executadas quando os dados das regulamentações estaduais dos EUA ficam disponíveis no fluxo. Qualquer solicitação subsequente de dados de regulamentações estaduais dos EUA deve ser obtida chamando diretamente a API GPP (__gpp ).
|
Médio |
googlefc.CallbackQueue {!Object}
Resumo do método:
Nome | Tipo | Parâmetro | Tipo de retorno | Papel |
---|---|---|---|---|
push(data)
|
número |
data : um par de chave-valor com a chave como um dos tipos de disponibilidade de dados e o valor como uma função JavaScript a ser executada.
As chaves de disponibilidade de dados aceitáveis são CONSENT_API_READY ,
CONSENT_DATA_READY , AD_BLOCK_DATA_READY ,
INITIAL_US_STATES_OPT_OUT_DATA_READY ,
CONSENT_MODE_DATA_READY e (legado)
INITIAL_CCPA_DATA_READY .
|
O número de comandos adicionados até agora. Isso retorna o comprimento atual da matriz. | Executa a função transmitida na ordem em que os dados ficam disponíveis e, em seguida, na ordem em que essas funções são adicionadas à fila. |
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
// Handle a non-ad blocking user.
}
}
});
</script>
googlefc.AdBlockerStatusEnum {!Object<string, number>}
Representa os diferentes estados de bloqueio de anúncios do usuário. Os diferentes estados são:
googlefc.AdBlockerStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// The user was running an extension level ad blocker.
EXTENSION_AD_BLOCKER: 1,
// The user was running a network level ad blocker.
NETWORK_LEVEL_AD_BLOCKER: 2,
// The user was not blocking ads.
NO_AD_BLOCKER: 3,
};
googlefc.AllowAdsStatusEnum {!Object<string, number>}
Representa os diferentes estados de permissão de anúncios para resposta a bloqueio de anúncios do usuário. Os diferentes estados são:
googlefc.AllowAdsStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// User is currently using an ad blocker, was never using an ad blocker, or
// allowed ads, but not because they saw the Privacy & messaging message.
ADS_NOT_ALLOWED: 1,
// User is no longer using an ad blocker after seeing the ad blocking message.
ADS_ALLOWED: 2,
};
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}
Representa os diferentes status de recusa das regulamentações estaduais dos EUA do usuário. Os diferentes status são:
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum = {
// Something failed, status unknown.
UNKNOWN: 0,
// No US state regulation applies to this user.
DOES_NOT_APPLY: 1,
// A US state regulation applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// A US state regulation applies to this user, and the user has opted out.
OPTED_OUT: 3,
};
googlefc.GoogleFcConsentModeUserStatus{!Object}
O tipo do objeto retornado por googlefc.getGoogleConsentModeValues
.
interface GoogleFcConsentModeUserStatus {
// End user consent decision value for the ad_storage consent mode purpose.
adStoragePurposeConsentStatus: number;
// End user consent decision value for the ad_user_data consent mode purpose.
adUserDataPurposeConsentStatus: number;
// End user consent decision value for the ad_personalization consent mode purpose.
adPersonalizationPurposeConsentStatus: number;
// End user consent decision value for the analytics_storage consent mode purpose.
analyticsStoragePurposeConsentStatus: number;
}
O valor de cada campo é um número que corresponde a um valor de enumeração googlefc.ConsentModePurposeStatusEnum
.
googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}
Representa os diferentes valores possíveis de consentimento do usuário final para uma finalidade do modo de consentimento. Os diferentes valores são:
googlefc.ConsentModePurposeStatusEnum = {
// Indicates either an error state, or that consent mode data is not ready
// yet.
UNKNOWN: 0,
// Consent is granted for the given consent mode purpose.
GRANTED: 1,
// Consent is denied for the given consent mode purpose.
DENIED: 2,
// Consent is not applicable for the given consent mode purpose.
NOT_APPLICABLE: 3,
// The consent mode purpose has not been configured for use in the Privacy &
// messaging UI.
NOT_CONFIGURED: 4
};
googlefc.usstatesoptout.overrideDnsLink{undefined|boolean}
Defina esse campo como "true" para ocultar o link padrão "Não vender nem compartilhar" e usar seu próprio link personalizado "Não vender nem compartilhar".
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
// Signals that the default DNS link will be overridden.
googlefc.usstatesoptout.overrideDnsLink = true;
</script>
googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}
Representa os diferentes status de recusa das regulamentações estaduais dos EUA do usuário. Os diferentes status são:
googlefc.ccpa.InitialCcpaStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// No US state regulation applies to this user.
CCPA_DOES_NOT_APPLY: 1,
// A US state regulation applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// A US state regulation applies to this user, and the user has opted out.
OPTED_OUT: 3,
};
googlefc.ccpa.overrideDnsLink{undefined|boolean}
Defina esse campo como "true" para ocultar o link padrão "Não vender nem compartilhar"
e usar seu próprio link personalizado "Não vender nem compartilhar". Se você definir esse campo como verdadeiro, será responsável por renderizar um link "Não vender nem compartilhar minhas informações pessoais" no seu site. Esse campo precisa ser usado com
openConfirmationDialog
.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {};
// Signals that the default DNS link will be overridden.
googlefc.ccpa.overrideDnsLink = true;
</script>
Métodos: explicações e exemplos
googlefc.getConsentStatus(): {number}
googlefc.getConsentedProviderIds(): {!Array<string>}
- Agora, ele sempre retorna uma lista vazia quando é chamado.
googlefc.showRevocationMessage(): {undefined}
Limpa o registro de consentimento das regulamentações da UE atual, se houver, e mostra a mensagem das regulamentações da UE novamente para permitir que o usuário mude a decisão de consentimento.
Exemplo 1: exemplo simples de configuração de um link que vai mostrar a mensagem de revogação quando clicado:
<a href="javascript:window.googlefc.showRevocationMessage();">Privacy and cookie settings</a>
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => {
// Update the revocation link so that it shows on the page.
const revocationLink = document.getElementById('revocation-link');
revocationLink.style.display = 'block';
}
});
</script>
Exemplo 2: se você quiser que o link fique visível apenas quando as regulamentações da UE se aplicarem ao usuário atual, use a fila de retorno de chamada googlefc com a API da TCF para atualizar condicionalmente a exibição do botão com base no valor gdprApplies
assim que ele for determinado. Para isso, use a chave de API
CONSENT_API_READY
.
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
// Specifying "0" for the version parameter will result in the API call
// using the latest version of the TCF spec.
() => __tcfapi('addEventListener', 0, (tcdata, success) => {
const revocationLink = document.getElementById('revocation-link');
if (!success || !tcdata) {
// Something went wrong, don't show the revocation link.
revocationLink.style.display = 'none';
}
else if (tcdata.gdprApplies) {
revocationLink.style.display = 'block';
} else {
// GDPR does not apply so don't show the revocation link.
revocationLink.style.display = 'none';
}
})
});
</script>
googlefc.getAdBlockerStatus(): {number}
Retorna um valor no AdBlockerStatusEnum dependendo do status de bloqueio de anúncios
do usuário. A chave que precisa ser especificada para essa função é AD_BLOCK_DATA_READY
.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAdBlockerStatus()) {
case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
// Insert handling for cases where the user is blocking ads.
break;
case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
// Insert handling for cases where the user is not blocking ads.
break;
case googlefc.AdBlockerStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.getAllowAdsStatus(): {number}
Retorna um valor em AllowAdsStatusEnum
dependendo do status de permissão de anúncios do usuário. A chave que precisa ser especificada para essa função é AD_BLOCK_DATA_READY
.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAllowAdsStatus()) {
case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
// Insert handling for cases where the user has not allowed ads.
// The user may have never been an ad blocker.
break;
case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
// Insert handling for cases where the user saw the ad blocking
// message and allowed ads on the site.
break;
case googlefc.AllowAdsStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus(): {number}
Retorna um valor em InitialUsStatesOptOutStatusEnum
dependendo do status de recusa da regulamentação estadual dos EUA do usuário. A chave que precisa ser especificada para essa função é INITIAL_US_STATES_OPT_OUT_DATA_READY
. Qualquer solicitação subsequente de dados de regulamentações estaduais dos EUA deve ser obtida chamando diretamente a API GPP (__gpp
).
Se você estiver substituindo o link "Não vender nem compartilhar minhas informações pessoais", use esse método para determinar quando incluir o link no seu site.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'INITIAL_US_STATES_OPT_OUT_DATA_READY':
() => {
switch (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()) {
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.DOES_NOT_APPLY:
// Insert handling for cases where no US state regulation applies to
// the user.
break;
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT:
// Insert handling for cases where a US state regulation applies to
// the user, and the user has not opted out.
break;
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.OPTED_OUT:
// Insert handling for cases where a US state regulation applies to the
// user, and the user has opted out.
break;
}
}
});
</script>
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)): {undefined}
Abre a caixa de diálogo de confirmação de recusa das regulamentações estaduais dos EUA se o link padrão "Não vender minhas informações pessoais" for substituído. Quando o usuário interage com a caixa de diálogo de confirmação, a função de callback fornecida é chamada com true
se o usuário decidir recusar e false
caso contrário.
Exemplo:
<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
// Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
"click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>
googlefc.getGoogleConsentModeValues(): {!Object}
Retorna um objeto
googlefc.GoogleFcConsentModeUserStatus
que contém os valores atuais de cada finalidade do modo de consentimento, com base na
decisão de consentimento do usuário.
Consulte Como usar as soluções de gestão de consentimento do Google com suporte ao modo de consentimento para regulamentações da UE para saber mais sobre o uso pretendido.
googlefc.ccpa.getInitialCcpaStatus(): {number}
Retorna um valor em InitialCcpaStatusEnum
dependendo do status de recusa da regulamentação estadual dos EUA do usuário. A chave que precisa ser especificada para essa
função é INITIAL_CCPA_DATA_READY
. Qualquer solicitação subsequente de dados de regulamentação estadual dos EUA deve ser obtida chamando diretamente a API GPP (__gpp
).
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'INITIAL_CCPA_DATA_READY':
() => {
switch (googlefc.ccpa.getInitialCcpaStatus()) {
case googlefc.ccpa.InitialCcpaStatusEnum.CCPA_DOES_NOT_APPLY:
// Insert handling for cases where no US state regulation applies to
// the user.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
// Insert handling for cases where a US state regulation applies to
// the user, and the user has not opted out.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
// Insert handling for cases where a US state regulation applies to the
// user, and the user has opted out.
break;
}
}
});
</script>
googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}
Abre a caixa de diálogo de confirmação de recusa das regulamentações estaduais dos EUA se o link padrão "Não vender minhas informações pessoais" for substituído. Quando o usuário interage com a caixa de diálogo de confirmação, a função de callback fornecida é chamada com true
se o usuário decidir desativar e false
caso contrário.
Exemplo:
<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
// Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
"click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>
Usar as soluções de gestão de consentimento do Google com a TCF v2 do IAB para o GDPR
Se você estiver usando as soluções de gestão de consentimento do Google para coletar o consentimento do GDPR na estrutura da TCF v2 do IAB, use a API da TCF v2 do IAB.
Use a chave da fila de retorno de chamada CONSENT_API_READY
para garantir que os retornos de chamada correspondentes sejam invocados somente quando a API TCF v2 do IAB estiver definida na página. Ela precisa ser usada em conjunto com o comando
'addEventListener'
da API TCF v2 do IAB.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback using the CONSENT_API_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => __tcfapi('addEventListener', 2.2, (data, success) => {
// Do something with consent data value; this callback may be invoked
// multiple times as user completes consent flow.
})
});
</script>
Você pode usar a chave da fila de callback CONSENT_DATA_READY
para garantir que os callbacks correspondentes sejam invocados
somente quando o consentimento do usuário for coletado e acessível usando a API TCF v2 do IAB.
Isso pode ser usado em conjunto com o comando
'addEventListener'
— os dados fornecidos na primeira invocação do seu callback
conterão as seleções de consentimento do usuário (desde que a TCF v2 se aplique a esse
usuário). Com o lançamento da TCF v2.2, o comando
'getTCData'
está obsoleto.
Exemplo:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback using the CONSENT_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __tcfapi('addEventListener', 2.2, (data, success) => {
// Do something with consent data value; this callback may be invoked
// multiple times if user consent selections change.
})
});
</script>
Usar as soluções de gestão de consentimento do Google com suporte ao modo de consentimento para regulamentações da UE
As soluções de gestão de consentimento do Google podem interpretar as opções de consentimento dos usuários de acordo com as regulamentações da UE para o modo de consentimento do Google. Saiba mais na Central de Ajuda.
O modo de consentimento pode ser implementado no modo básico ou avançado, conforme descrito na documentação do Google Ads e do Analytics. Consulte seu departamento jurídico para saber qual modo de consentimento implementar e atender aos requisitos legais.
O modo de consentimento avançado é compatível por padrão. Depois de ativar o modo de consentimento na interface da ferramenta Privacidade e mensagens, não é necessário fazer mais nada.
Para implementar o modo de consentimento básico usando as soluções de gerenciamento de consentimento do Google, use a chave da fila de retorno de chamada CONSENT_MODE_DATA_READY
para carregar condicionalmente as tags do Google Ads e do Analytics assim que os dados do modo de consentimento estiverem disponíveis.
Os dados do modo de consentimento vão estar disponíveis depois que o Funding Choices determinar que ele não se aplica a essa solicitação (por exemplo, porque os regulamentos da UE não se aplicam a ela) ou depois que um usuário tomar uma decisão de consentimento de acordo com os regulamentos da UE. Consulte seu departamento jurídico sobre os critérios a serem usados para determinar se as tags podem ser carregadas quando o modo de consentimento estiver disponível.
Por exemplo, para carregar suas tags assim que os dados do modo de consentimento estiverem disponíveis, independente da decisão de consentimento do usuário final:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to load Google Ads/Analytics tags once consent mode data is
// ready.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
// Queue the callback using the CONSENT_MODE_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_MODE_DATA_READY':
() => {
loadGtagScript();
},
});
</script>
Você também pode usar a API googlefc.getGoogleConsentModeValues()
para receber os valores das finalidades individuais do modo de consentimento quando os dados estiverem disponíveis.
Essa API retorna um objeto GoogleFcConsentModeUserStatus
que contém um campo para cada finalidade do modo de consentimento compatível. O valor de cada campo é um valor de enumeração que indica o valor dessa finalidade.
Por exemplo, você pode usar googlefc.getGoogleConsentModeValues()
para desbloquear suas tags do Google Ads e do Analytics somente quando:
- o usuário final toma uma decisão de consentimento de acordo com as regulamentações da UE que resulta na concessão de consentimento para todas as finalidades do modo de consentimento, ou
- todas as finalidades do modo de consentimento são inaplicáveis à solicitação atual. Isso pode acontecer se as regulamentações da UE não se aplicarem ou se o modo de consentimento não estiver configurado para uma ou mais finalidades em Privacidade e mensagens.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to determine whether Google Ads and Analytics tags can be
// unblocked. Returns true if all consent mode purposes are set to GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
const shouldUnblockConsentTags = (googleFcConsentModeStatus) => {
const allConsentModeValues = [
googleFcConsentModeStatus.adStoragePurposeConsentStatus,
googleFcConsentModeStatus.adUserDataPurposeConsentStatus,
googleFcConsentModeStatus.adPersonalizationPurposeConsentStatus,
googleFcConsentModeStatus.analyticsStoragePurposeConsentStatus
];
for (const consentModeValue of allConsentModeValues) {
switch (consentModeValue) {
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_UNKNOWN:
// Indicates either an error case or that consent mode data is not
// ready yet. Cannot unblock tags until consent data is ready and valid,
// so return false.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_GRANTED:
// Consent is granted for this consent mode purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_DENIED:
// Consent is denied for this consent mode purpose. Do not unblock tags.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_APPLICABLE:
// Consent mode does not apply for this purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_CONFIGURED:
// Consent mode not configured for this purpose.
// If you configured support for Ads purposes but not Analytics purposes in the
// Privacy & messaging UI, the value of `analyticsStoragePurposeConsentStatus` will
// always be set to NOT_CONFIGURED. If you do not enable any Consent Mode support
// in the Privacy & messaging UI, the values of all purposes will always be set to
// NOT_CONFIGURED.
break;
default:
console.log("Unexpected consent mode value encountered");
}
}
// If all prior checks pass, all consent mode values are either GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
return true;
};
// Helper function to load Google Ads/Analytics tags.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
googlefc.callbackQueue.push({
CONSENT_MODE_DATA_READY: () => {
if (shouldUnblockConsentTags(googlefc.getGoogleConsentModeValues())) {
loadGtagScript();
}
},
});
</script>
Usar as soluções de gestão de consentimento do Google com a estrutura GPP do IAB para regulamentações estaduais dos EUA
Se você estiver usando as soluções de gestão de consentimento do Google para veicular mensagens de recusa das regulamentações estaduais dos EUA a usuários finais de acordo com a estrutura GPP do IAB, use a API GPP do IAB.
Devido à natureza de recusa das regulamentações estaduais dos EUA, você pode usar a chave de fila de callback CONSENT_API_READY
ou CONSENT_DATA_READY
para garantir que a API GPP do IAB possa ser chamada e retorne dados de consentimento no momento em que os callbacks são invocados.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __gpp('ping', (data, success) => {
// Do something with consent data value.
})
});
</script>
Usar as soluções de gestão de consentimento do Google com a estrutura da GPP do IAB para regulamentações estaduais dos EUA com seu próprio link personalizado "Não vender nem compartilhar"
Se você estiver usando as soluções de gestão de consentimento do Google para veicular mensagens de recusa de regulamentações estaduais dos EUA a usuários finais de acordo com a estrutura GPP do IAB, é possível fornecer seu próprio link personalizado "Não vender nem compartilhar" definindo a flag googlefc.usstatesoptout.overrideDnsLink
como true
.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Signals that the default DNS link will be overridden.
window.googlefc.usstatesoptout.overrideDnsLink = true;
// Register the callback for the initial US state regulations data.
window.googlefc.callbackQueue.push({
'INITIAL_US_STATES_OPT_OUT_DATA_READY': () => {
if (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() ===
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT) {
// TODO: Display custom Do Not Sell or Share link here.
}
}
});
</script>
Isso garante que o link padrão "Não vender nem compartilhar minhas informações pessoais" não seja renderizado. Em seguida, você precisa processar a interação do usuário com o link personalizado "Não vender nem compartilhar" invocando a caixa de diálogo de confirmação de recusa das regulamentações estaduais dos EUA.
Ao usar seu próprio link personalizado "Não vender nem compartilhar", você é responsável por garantir que ele esteja em conformidade com as regulamentações estaduais dos EUA.
<script>
// This callback will be called when the user makes a US state regulations
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
if (userOptedOut) {
// TODO: Hide custom Do Not Sell or Share link here.
}
}
// Invoke the US state regulations opt-out confirmation dialog when the user
// clicks the link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
"click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>