GPP string
The complete code, with a header and one or more sections. It is what travels along with ad requests.
Guide · Industry standard
GPP puts into a single code the privacy choices that each law asks for, from US states to Canada and Europe. Here you will understand how it works, what Google reads and when your site needs it.
What it is
GPP is an IAB Tech Lab protocol, the technical body of the advertising industry. It was born as Global Privacy Platform and now appears on the official site as Global Privacy Protocol. The acronym stays the same.
The idea is simple. Each privacy law asks for different information. California talks about sale and sharing of data. Other states talk about targeted advertising. Europe talks about consent by purpose. GPP stores all of this in a single code, the GPP string, divided into sections.
The site's privacy banner, the CMP, builds this string according to the region and the visitor's choice. Then the ad code sends the string to the platforms, which read only the section that applies to that visitor.
Like the TCF, GPP is not a law. It is a technical tool to carry the visitor's choice to ad partners in a standardized way.
Checklist
The GPP is not a law, so these points come from US state laws and from what Google asks in order to read the signal.
In California, a business that sells personal data needs a clear, visible link called Do Not Sell or Share My Personal Information. Google's state regulations message creates that link.
Footer for US visitors with the Do Not Sell or Share My Personal Information link.
In California, the Global Privacy Control signal sent by the browser must be respected as a valid request to stop the sale or sharing of data.
When the browser sends the GPC, the CMP records the opt-out in the GPP string without asking for a click.
Google turns on restricted data processing when the string shows an opt-out of sale, sharing or targeted advertising. If the click does not change the string, the opt-out does not reach Google.
In the GPP, Google accepts the US national section and the sections for California, Colorado, Connecticut, Florida and Virginia. It does not accept the Utah section, the Canadian TCF or GPP version 1.0.
For visitors from the EEA, the United Kingdom and Switzerland, Google keeps using the IAB Europe TCF with a certified CMP. The European TC string inside the GPP is not accepted.
Google receives the string in the gpp parameter and the section numbers in the gpp_sid parameter. Check that header bidding partners also receive both.
In the ad request of a visitor with the national section, the gpp_sid parameter carries the number 7.
Google does not require GPP or a CMP for US states. Anyone with their own opt-out link can turn on restricted data processing directly in the Ad Manager tag for people who opted out.
googletag.pubads().setPrivacySettings({
restrictDataProcessing: true
});The IAB deprecated the US Privacy String in January 2024. Google still reads that signal, but recommends migrating to the GPP.
In practice
Official tools
Google does not require a certified CMP or GPP for US states, so use these official pages to generate the signal and show the opt-out.
Definitions
Six concepts explain almost everything that happens with GPP on a site.
The complete code, with a header and one or more sections. It is what travels along with ad requests.
The first part of the string. It says which sections come inside it, so that each partner finds the one it needs.
The block of a jurisdiction, such as the US national section or a state's. Each has a number and a short name.
The list of the numbers of the sections that apply to that request. It goes along with the string so the partner knows which one to read.
The CMP's standard command on the page. Ad scripts ask it whether the string is ready and what its content is.
IAB's multi-state agreement for ad transactions in the US. The national section has fields that indicate whether the transaction is covered by it.
The sections
The official list of sections is in the IAB Tech Lab repository and grows as new laws take effect.
Carries the European TC string inside the GPP. Useful for partners that read everything through GPP, but Google does not accept this path for European visitors.
Canadian version of the TCF, created by IAB Canada for the country's consent rules.
The old California signal, also called the four-character string. It remains on the list, but was discontinued by the IAB.
A section that covers state laws in a unified way. Many CMPs use only it for all states.
Own blocks for states such as California, Virginia, Colorado, Connecticut, Texas, Oregon and others. The official list has 20.
The national section can carry the notice that the browser sent Global Privacy Control, the automatic opt-out signal.
Who it applies to
GPP makes the most difference for sites with US visitors that show programmatic ads. It is through it that platforms learn whether the visitor asked not to have their data sold, shared or used in targeted advertising.
If your audience is almost all Brazilian, GPP has little effect. The LGPD does not use this standard and Google does not ask for GPP for visitors from Brazil. Even so, it is worth setting up the CMP by region so the US audience receives the right signal.
For Europe, GPP does not replace the TCF at Google. Ad Manager does not accept the European TC string sent inside GPP for visitors from the EEA, the UK and Switzerland. In these regions, the certified CMP with TCF remains mandatory for personalized ads.
The laws behind GPP are enforced by the authorities of each country or state, such as US state attorneys general. GPP itself does not impose fines. It is the technical proof that the visitor's choice was carried forward.
Visitor rights
The usnat section holds two kinds of information. The first is whether the site notified the visitor: sharing notice, sale notice, targeted advertising notice and notices about sensitive data.
The second is what the visitor decided. There are fields for opt-out of the sale of data, opt-out of sharing, opt-out of targeted advertising, use of sensitive data and consent for children's data.
These fields reflect the rights that state laws give people. When a visitor clicks Do Not Sell or Share My Information, the CMP changes the corresponding field and all partners receive the opt-out on the next ad request.
The section also indicates whether the transaction is covered by the MSPA agreement and may carry the value of the Global Privacy Control sent by the browser.
How to implement
// Pergunta à CMP se a GPP string está pronta
__gpp('ping', function (data, ok) {
if (!ok) return;
console.log('status:', data.signalStatus); // 'ready' ou 'not ready'
console.log('seções:', data.applicableSections); // ex.: [7]
console.log('string:', data.gppString);
});AdSense and Ad Manager
Ad Manager receives the string in two ad request parameters: gpp, with the string, and gpp_sid, with the section numbers. Google's tag handles this when the CMP exposes the standard API.
Within GPP, Ad Manager accepts the US national section and the sections for California, Colorado, Connecticut, Florida and Virginia. It does not use GPP for the European TCF, the Canadian TCF and the Utah section.
When the string shows an opt-out, Google turns on restricted data processing. In the national section, this happens with an opt-out of sale, sharing or targeted advertising. The ad is still shown, but without personalization based on that visitor's data.
Google does not require the publisher to sign the MSPA. Ad Manager takes part in the MSPA certified partners program. Since September 2025, Google accepts the second version of the national section and keeps accepting the first.
Timeline
The standard is updated whenever new state laws take effect.
The IAB Tech Lab publishes the final GPP string specification and the first version of the CMP API.
The usnat section is launched to gather state laws in a single block.
The API starts responding through callback functions, and some old commands are removed.
The IAB discontinues the old California signal. Google keeps reading that signal, but the recommended path becomes GPP.
Ad Manager starts reading the second version of the national section, while still accepting the first.
The Maryland, Indiana, Kentucky and Rhode Island sections are finalized after public consultation.
The specification is updated to the latest version of the multi-state agreement.
Common errors
Almost all go unnoticed, because the banner keeps appearing normally.
The visitor clicks do not sell, but the GPP string stays the same. For the partners, the opt-out never happened.
The CMP sends the TC string only through GPP. Google does not accept this path for the EEA, the UK and Switzerland, and ads become limited.
The string arrives, but the list of sections does not match the content. The partner does not know which block to read.
The ad code fires before the CMP is ready. The first requests go out with no privacy signal.
Google's tag receives the string, but the header bidding partners do not. Part of the auction ignores the visitor's opt-out.
The browser sends Global Privacy Control, but the CMP does not record the opt-out. In several states, this is treated as a valid opt-out.
In practice
Practical examples for those with traffic from the United States and other countries.
In ConsentMode
No. The TCF is the European consent standard. GPP is an envelope that can carry the TCF and signals from other laws. At Google, Europe keeps using the TCF directly, and GPP serves mainly the US.
Only if you have visitors from the United States and want their opt-out to reach ad partners. For the Brazilian audience, GPP is not required by Google.
It is the path recommended by the IAB, which discontinued the old string in January 2024. Google still reads the old string, so the switch can be planned calmly.
Google does not require the publisher to sign. If other partners ask, assess with your legal team. The MSPA is a contract, not a technical setting.
No. Google keeps showing ads, but without using that visitor's data for personalization. Revenue per visit is usually lower.
Open the browser console and use the ping command of the __gpp API, as in this guide's example. Or run a ConsentMode audit, which shows the string and the sections.
Library
This guide was written from these official pages. Read them directly at the source:
The audit reads the GPP string as a US visitor and shows what to fix, without changing anything.