I hope you get a prompt response, but it may take a while.
Besides the Cache Rule I’ve suggested as a workaround in your previous thread, there’s an even better way to make the
gad=1 parameter get cached by APO.
Create a Transform Rule to remove the query string when the
gad=1 parameter is present:
When incoming requests match...
Hostname equals apo.example.com <<< your APO hostname, if applicable.
URI Query String contains "gad=1" (*** see note below)
Query: Rewrite to...
Static: (leave value empty)
This will remove the query string when the URL is passed to Cloudflare cache or your origin.
Removing the query string upstream is exactly what will happen if and when the APO decides to add the
gad=1 parameter to their list, with one major difference. APO’s logic will treat as dynamic content if the URL contains other query string parameters besides the ones in their marketing list so that
/utm_source=x&gad=1 would have the query string removed, while
Meanwhile, the suggested Transform Rule will remove the whole query string in both cases. That shouldn’t be an issue for an ad, as their query strings do not normally contain elements that need processing by the origin, unless a query string parameter defines what content should be returned (something like.
/path/to/page?page_number=123&gad=1), in which case a more complex Transform Rule would be needed.
*** Despite Google Ads’ own working about it, the
gad=1 parameter should only contain
& if it’s appended to a pre-existing string (ex.:
/path/to/page?param1&gad=1). Otherwise, it’s added by itself: