$mobile = new MobileDevice();
$mobile->setDeviceName('Samsung J5 Prime (SM-G570F)');
$campaignCriteria[] = new CampaignCriterion($campaignId, null, $mobile);
...
etc
<?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"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<ns1:RequestHeader>
<ns1:clientCustomerId>XXX-XXX-XXXX</ns1:clientCustomerId>
<ns1:developerToken>REDACTED</ns1:developerToken>
<ns1:userAgent>unknown (AwApi-PHP, googleads-php-lib/42.0.0, PHP/7.3.7-1+ubuntu18.10.1+deb.sury.org+1)</ns1:userAgent>
<ns1:validateOnly>false</ns1:validateOnly>
<ns1:partialFailure>false</ns1:partialFailure>
</ns1:RequestHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:mutate>
<ns1:operations>
<ns1:operator>ADD</ns1:operator>
<ns1:operand>
<ns1:campaignId>2087725659</ns1:campaignId>
<ns1:criterion xsi:type="ns1:MobileDevice">
<ns1:deviceName>Samsung J5 Prime (SM-G570F)</ns1:deviceName>
</ns1:criterion>
</ns1:operand>
</ns1:operations>
</ns1:mutate>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ResponseHeader
xmlns="https://adwords.google.com/api/adwords/cm/v201809">
<requestId>0005908c720423fb02ab42cca40bd386</requestId>
<serviceName>CampaignCriterionService</serviceName>
<methodName>mutate</methodName>
<operations>1</operations>
<responseTime>143</responseTime>
</ResponseHeader>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>[RequiredError.REQUIRED @ operations[0].operand.criterion.id]</faultstring>
<detail>
<ApiExceptionFault
xmlns="https://adwords.google.com/api/adwords/cm/v201809">
<message>[RequiredError.REQUIRED @ operations[0].operand.criterion.id]</message>
<ApplicationException.Type>ApiException</ApplicationException.Type>
<errors
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RequiredError">
<fieldPath>operations[0].operand.criterion.id</fieldPath>
<fieldPathElements>
<field>operations</field>
<index>0</index>
</fieldPathElements>
<fieldPathElements>
<field>operand</field>
</fieldPathElements>
<fieldPathElements>
<field>criterion</field>
</fieldPathElements>
<fieldPathElements>
<field>id</field>
</fieldPathElements>
<trigger></trigger>
<errorString>RequiredError.REQUIRED</errorString>
<ApiError.Type>RequiredError</ApiError.Type>
<reason>REQUIRED</reason>
</errors>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
<value>
<campaignId>2087725659</campaignId>
<isNegative>false</isNegative>
<criterion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MobileDevice">
<id>613251</id>
<type>MOBILE_DEVICE</type>
<Criterion.Type>MobileDevice</Criterion.Type>
<deviceName>8079</deviceName>
<manufacturerName>Alcatel</manufacturerName>
<deviceType>DEVICE_TYPE_TABLET</deviceType>
<operatingSystemName>Android</operatingSystemName>
</criterion>
<campaignCriterionStatus>ACTIVE</campaignCriterionStatus>
<CampaignCriterion.Type>CampaignCriterion</CampaignCriterion.Type>
</value>