How to UploadOfflineCallConversions?

177 views
Skip to first unread message

Logita Kurrey

unread,
Apr 27, 2019, 1:05:56 AM4/27/19
to AdWords API and Google Ads API Forum
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 yyyyMMdd HHmmss tz. For more details on formats,
    // see:
    // For time zones, see:
    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?
screenshot-ads.google.com-2019.04.27-10-28-50.png

googleadsapi...@google.com

unread,
Apr 29, 2019, 1:41:37 AM4/29/19
to adwor...@googlegroups.com
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

--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 adwor...@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscribe@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 receiving emails from it, send an email to adwords-api+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/d73ff1bb-0178-4c70-aa57-e69b856d7294%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages