I am trying to use a service account to connect with the Google Ads API.

At the momet my code looks like this:

$oAuth2Credential = (new OAuth2TokenBuilder())         ->withJsonKeyFilePath(self::CREDENTIALS_FILE_PATH)         ->withScopes('https://www.googleapis.com/auth/adwords')         ->withImpersonatedEmail(IMPERSONATED_EMAIL)         ->build();     $googleAdsClient = (new GoogleAdsClientBuilder())         ->withOAuth2Credential($oAuth2Credential)         ->withDeveloperToken(DEVELOPER_TOKEN)         ->build();     $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();     $query = 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id';     $stream =         $googleAdsServiceClient->searchStream(CUSTOMER_ID, $query); 

In Google cloud I have created a project and a service account. The account is the same I have access to at Google Ads. Also I have set the Domain-Wide Delegation at Google Workspace, with this same account. In my opinion I did everything right, but I am getting this error:

I hope there's someone who can help me out.

While working on WhatsApp Business Cloud API, I have to send an Image through WhatsApp. When I send that image I am getting a response as a sha256 base64 string and an imageId. I want to retrieve back that image using these credentials. I'm getting a URL when I make a get request with that image id. That URL is actually broken/invalid and I'm not getting the image back.

Response of the request is given below :

"messages": [               {                 "from": "918******6",                 "id": "wamid.HBgMOT*********EA",                 "timestamp": "1655978686",                 "type": "image",                 "image": {                   "mime_type": "image/jpeg",                   "sha256": "ian**********jM4k=",                   "id": "4**********7"                 }               }             ] 

I tried a lot of ways to enable the Vignette ads on the Next JS site before I realized that there always was a block for them in the inspector, it just never change "display: none" to "display: block".

<ins class="adsbygoogle adsbygoogle-noablate" style="display: none !important; width: 100vw !important; height: 100vh !important; inset: 0px auto auto 0px !important; clear: none !important; float: none !important; margin: 0px !important; max-height: none !important; max-width: none !important; opacity: 1 !important; overflow: visible !important; padding: 0px !important; position: fixed !important; vertical-align: baseline !important; visibility: visible !important; z-index: 2147483647 !important; background: transparent !important;" data-adsbygoogle-status="done" aria-hidden="true" data-vignette-loaded="true" data-ad-status="filled"></ins> 

How i saw on other sites this ins appear and after some interaction with the site display automatically changed from none to block and Vignette Ads appear. If I manually change in the inspector display to block - Vignette will appear immediately, but automatically never.

Please can anyone know a possible solution?

I'm trying to convert the below PQL query (Publisher's Query Language) in to JSON format.

StatementBuilder statementBuilder = new StatementBuilder()   .where("CUSTOM_CRITERIA LIKE '%permutive'") .withBindVariableValue("orderId", orderId); 

Can any one help with this ? Thanks in advance !