RE: How to UploadOfflineCallConversions?
Hi Logita, So I can further investigate, could you provide the complete SOAP request and response logs that were generated when the "OfflineCallConversionError.TOO_RECENT_CALL" and the "Invalid call" errors occurred? You may send your reply via the *Reply privately to author* option. Thanks and regards, Peter Google Ads API Team On 04/27/19 13:05:56 logita.constacl...@gmail.com wrote: I have created a conversion action attached screenshot above. Now when I am making a Uploadofflinecallconversion to it it is giving [OfflineCallConversionError.TOO_RECENT_CALL @ operations[0].operand] . Which means that they are processing it and I need to upload it after 4 -5 hours. But after 4- 5 hours I uploaded it again it gave Invalid call error. Which means they are not able to find the number in there system. Where I should set the number to get conversions? namespace Google\AdsApi\Examples\AdWords\v201809\Remarketing; require __DIR__ . '/vendor/autoload.php'; use Google\AdsApi\AdWords\AdWordsServices; use Google\AdsApi\AdWords\AdWordsSession; use Google\AdsApi\AdWords\AdWordsSessionBuilder; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeed; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeedOperation; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeedService; use Google\AdsApi\AdWords\v201809\cm\Operator; use Google\AdsApi\Common\OAuth2TokenBuilder; /** * This code example imports offline call conversion values for calls related * to the ads in your account. */ class UploadOfflineCallConversions { const CALLER_ID = '+6502531234'; // For times use the format MMdd HHmmss tz. For more details on formats, // see: // https://developers.google.com/adwords/api/docs/appendix/codes-formats#date-and-time-formats // For time zones, see: // https://developers.google.com/adwords/api/docs/appendix/codes-formats#timezone-ids const CALL_START_TIME = '20190427 010200 America/New_York'; const CONVERSION_NAME = '5cc2fbb9e3a5e'; const CONVERSION_TIME = '20190427 010200 America/New_York'; const CONVERSION_VALUE = '100.00'; public static function runExample( AdWordsServices $adWordsServices, AdWordsSession $session, $callerId, $callStartTime, $conversionName, $conversionTime, $conversionValue ) { $offlineCallConversionService = $adWordsServices->get( $session, OfflineCallConversionFeedService::class ); // Associate offline call conversions with the existing named conversion // tracker. If this tracker was newly created, it may be a few hours before // it can accept conversions. $feed = new OfflineCallConversionFeed(); $feed->setCallerId($callerId); $feed->setCallStartTime($callStartTime); $feed->setConversionName($conversionName); $feed->setConversionTime($conversionTime); $feed->setConversionValue($conversionValue); $offlineCallConversionOperations = []; $offlineCallConversionOperation = new OfflineCallConversionFeedOperation(); $offlineCallConversionOperation->setOperator(Operator::ADD); $offlineCallConversionOperation->setOperand($feed); $offlineCallConversionOperations[] = $offlineCallConversionOperation; // This example uploads only one call conversion, but you can upload // multiple call conversions by passing additional operations. $result = $offlineCallConversionService->mutate($offlineCallConversionOperations); $feed = $result->getValue()[0]; printf( "Uploaded offline call conversion value of '%s' for caller ID '%s'.\n", $feed->getConversionValue(), $feed->getCallerId() ); } public static function main() { // Generate a refreshable OAuth2 credential for authentication. $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build(); // Construct an API session configured from a properties file and the // OAuth2 credentials above. $session = (new AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->build(); self::runExample( new AdWordsServices(), $session, self::CALLER_ID, self::CALL_START_TIME, self::CONVERSION_NAME, self::CONVERSION_TIME, floatval(self::CONVERSION_VALUE) ); } } UploadOfflineCallConversions::main(); How to get a successful output from it? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To post to this g
How to UploadOfflineCallConversions?
I have created a conversion action attached screenshot above. Now when I am making a Uploadofflinecallconversion to it it is giving [OfflineCallConversionError.TOO_RECENT_CALL @ operations[0].operand] . Which means that they are processing it and I need to upload it after 4 -5 hours. But after 4- 5 hours I uploaded it again it gave Invalid call error. Which means they are not able to find the number in there system. Where I should set the number to get conversions? namespace Google\AdsApi\Examples\AdWords\v201809\Remarketing; require __DIR__ . '/vendor/autoload.php'; use Google\AdsApi\AdWords\AdWordsServices; use Google\AdsApi\AdWords\AdWordsSession; use Google\AdsApi\AdWords\AdWordsSessionBuilder; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeed; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeedOperation; use Google\AdsApi\AdWords\v201809\cm\OfflineCallConversionFeedService; use Google\AdsApi\AdWords\v201809\cm\Operator; use Google\AdsApi\Common\OAuth2TokenBuilder; /** * This code example imports offline call conversion values for calls related * to the ads in your account. */ class UploadOfflineCallConversions { const CALLER_ID = '+6502531234'; // For times use the format MMdd HHmmss tz. For more details on formats, // see: // https://developers.google.com/adwords/api/docs/appendix/codes-formats#date-and-time-formats // For time zones, see: // https://developers.google.com/adwords/api/docs/appendix/codes-formats#timezone-ids const CALL_START_TIME = '20190427 010200 America/New_York'; const CONVERSION_NAME = '5cc2fbb9e3a5e'; const CONVERSION_TIME = '20190427 010200 America/New_York'; const CONVERSION_VALUE = '100.00'; public static function runExample( AdWordsServices $adWordsServices, AdWordsSession $session, $callerId, $callStartTime, $conversionName, $conversionTime, $conversionValue ) { $offlineCallConversionService = $adWordsServices->get( $session, OfflineCallConversionFeedService::class ); // Associate offline call conversions with the existing named conversion // tracker. If this tracker was newly created, it may be a few hours before // it can accept conversions. $feed = new OfflineCallConversionFeed(); $feed->setCallerId($callerId); $feed->setCallStartTime($callStartTime); $feed->setConversionName($conversionName); $feed->setConversionTime($conversionTime); $feed->setConversionValue($conversionValue); $offlineCallConversionOperations = []; $offlineCallConversionOperation = new OfflineCallConversionFeedOperation(); $offlineCallConversionOperation->setOperator(Operator::ADD); $offlineCallConversionOperation->setOperand($feed); $offlineCallConversionOperations[] = $offlineCallConversionOperation; // This example uploads only one call conversion, but you can upload // multiple call conversions by passing additional operations. $result = $offlineCallConversionService->mutate($offlineCallConversionOperations); $feed = $result->getValue()[0]; printf( "Uploaded offline call conversion value of '%s' for caller ID '%s'.\n", $feed->getConversionValue(), $feed->getCallerId() ); } public static function main() { // Generate a refreshable OAuth2 credential for authentication. $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build(); // Construct an API session configured from a properties file and the // OAuth2 credentials above. $session = (new AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->build(); self::runExample( new AdWordsServices(), $session, self::CALLER_ID, self::CALL_START_TIME, self::CONVERSION_NAME, self::CONVERSION_TIME, floatval(self::CONVERSION_VALUE) ); } } UploadOfflineCallConversions::main(); How to get a successful output from it? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en --- You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To unsubscribe from this group and stop rec