Here's how we make the request:
$trial = new Trial();
$trial->setDraftId($draftId);
$trial->setBaseCampaignId($campaign['id']);
$trial->setName($finalCampaignName . ' - ' . uniqid());
$trial->setTrafficSplitPercent(50);
if ($campaign['advertisingChannelType'] != AdvertisingChannelType: ISPLAY) {
$trial->setTrafficSplitType(CampaignTrialTrafficSplitType::COOKIE);
}
$trial->setStartDate($startDate);
$trial->setEndDate($endDate);
$operations = [];
$operation = new TrialOperation();
$operation->setOperand($trial);
$operation->setOperator(Operator::ADD);
$operations[] = $operation;
/** @var TrialReturnValue $result */
$result = $trialService->mutate($operations);
And here's our SOAP request:
AdWords.DEBUG: POST /api/adwords/cm/v201809/TrialService?wsdl HTTP/1.1 Host: adwords.google.com Connection: close User-Agent: PHP-SOAP/7.3.3 Content-Type: text/xml; charset=utf-8 SOAPAction: "" Content-Length: 1075 Authorization: REDACTED <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201809"[SOAP-ENV:Header|SOAP-ENV:Header][ns1:RequestHeader|ns1:RequestHeader][ns1:clientCustomerId|ns1:clientCustomerId]4199085174</ns1:clientCustomerId>[ns1:developerToken|ns1:developerToken]REDACTED</ns1:developerToken>[ns1:userAgent|ns1:userAgent]unknown> (AwApi-PHP, googleads-php-lib/41.0.0, PHP/7.3.3)</ns1:userAgent>[ns1:validateOnly|ns1:validateOnly]false</ns1:validateOnly>[ns1 artialFailure|ns1 artialFailure]true</ns1 artialFailure></ns1:RequestHeader></SOAP-ENV:Header>[SOAP-ENV:Body|SOAP-ENV:Body][ns1:get|ns1:get][ns1:selector|ns1:selector][ns1:fields|ns1:fields]Id</ns1:fields>[ns1:fields|ns1:fields]BaseCampaignId</ns1:fields>[ns1:fields|ns1:fields]DraftId</ns1:fields>[ns1:fields|ns1:fields]Name</ns1:fields>[ns1:fields|ns1:fields]StartDate</ns1:fields>[ns1:fields|ns1:fields]EndDate</ns1:fields>[ns1:fields|ns1:fields]TrafficSplitPercent</ns1:fields>[ns1:fields|ns1:fields]Status</ns1:fields>[ns1:fields|ns1:fields]TrialCampaignId</ns1:fields>[ns1 redicates|ns1 redicates][ns1:field|ns1:field]Id</ns1:field>[ns1:operator|ns1:operator]IN</ns1:operator>[ns1:values|ns1:values]15504557</ns1:values></ns1 redicates></ns1:selector></ns1:get></SOAP-ENV:Body></SOAP-ENV:Envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=UTF-8 Date: Fri, 13 Sep 2019 19:46:32 GMT Expires: Fri, 13 Sep 2019 19:46:32 GMT Cache-Control: private, max-age=0 X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block Server: GSE Alt-Svc: quic=":443"; ma=2592000; v="46,43,39" Accept-Ranges: none Vary: Accept-Encoding Connection: close <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"[soap:Header|soap:Header]<ResponseHeader> xmlns="https://adwords.google.com/api/adwords/cm/v201809"<requestId>0005927482ce255d0a010f0d8f0ae1fa</requestId><serviceName>TrialService</serviceName><methodName>get</methodName><operations>1</operations><responseTime>293</responseTime></ResponseHeader></soap:Header>[soap:Body|soap:Body]<getResponse> xmlns="https://adwords.google.com/api/adwords/cm/v201809"<rval><totalNumEntries>1</totalNumEntries><Page.Type>TrialPage</Page.Type><entries><id>15504557</id><baseCampaignId>338223296</baseCampaignId><draftId>2533274790395904</draftId><name>Adext> AI [4184-6913-Original] - 5d7814c72bad6</name><startDate>20190910</startDate><endDate>20190910</endDate><trafficSplitPercent>50</trafficSplitPercent><status>ARCHIVED</status><trialCampaignId>6495632531</trialCampaignId></entries></rval></getResponse></soap:Body></soap:Envelope>
Hi Rodrigo,
Thank you for writing to us regarding your concern related to Trial Service. The InternalApiError.UNEXPECTED_INTERNAL_API_ERROR could be due to a temporary issue in the servers or could be due to a bug. From the shared details, it looks like you tried doing this operation via UI as well and faced the same error. Since API do not add any functionality to the UI, I would recommend contacting the product support team via help icon on the top right corner of your Google Ads account (once logged in) as they will be able to help you with the UI related issues. Once the issue is fixed in the UI, please try the same operation via API and let us know if the issue persists.
Regards,
Nikisha Patel, Google Ads API Team