【问题标题】:Upload Offline Conversion migration to V9上传离线转化迁移到 V9
【发布时间】:2023-02-16 16:02:01
【问题描述】:

我曾经使用 v201809 版本中提供的以下代码上传离线转换 https://github.com/googleads/googleads-php-lib/blob/master/examples/AdWords/v201809/Remarketing/UploadOfflineConversions.php

$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
$session = (new AdWordsSessionBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->withClientCustomerId($customerid)->enablePartialFailure()->build();

$adWordsServices = new AdWordsServices();
$offlineConversionService = $adWordsServices->get($session, OfflineConversionFeedService::class);
$conversionName="OfflineConv";
$feed = new OfflineConversionFeed();
$feed->setConversionName($conversionName);
$feed->setConversionTime($conversionTime);
$feed->setConversionValue($conversionValue);
$feed->setGoogleClickId($gclid);

$offlineConversionOperation = new OfflineConversionFeedOperation();
$offlineConversionOperation->setOperator(Operator::ADD);
$offlineConversionOperation->setOperand($feed);
$offlineConversionOperations = [$offlineConversionOperation];
$result = $offlineConversionService->mutate($offlineConversionOperations);

现在我正在升级到 V9,我已经使用了提供的代码 https://github.com/googleads/google-ads-php/blob/main/examples/Remarketing/UploadOfflineConversion.php

$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
$googleAdsClient = (new GoogleAdsClientBuilder())->fromFile()->withOAuth2Credential($oAuth2Credential)->build();

//$conversionName="OfflineConv";
$conversionName = ConversionActionType::WEBPAGE;
$clickConversion = new ClickConversion([
'conversion_action' => ResourceNames::forConversionAction($customerId, $conversionName),
'gclid' => $gclid,
'conversion_value' => $conversionValue,
'conversion_date_time' => $conversionTime,
'currency_code' => 'USD'
]);
$conversionUploadServiceClient = $googleAdsClient->getConversionUploadServiceClient();
$result = $conversionUploadServiceClient->uploadClickConversions($customerid, [$clickConversion], true);

问题是当我们设置 $conversionName="OfflineConv";我们得到以下错误。 资源名称“customers/9025381111/conversionActions/OfflineConv”格式错误:应为“customers/{customer_id}/conversionActions/{ConversionType.conversion_type_id}”,在 conversions[0].conversion_action

当我们设置 $conversionName = ConversionActionType::WEBPAGE;我们得到以下错误。 此客户没有与提供的转换操作相匹配的导入转换操作。,在 conversions[0].conversion_action

有人能帮我吗?

【问题讨论】:

    标签: google-ads-api


    【解决方案1】:

    转化名称必须与您已在帐户中设置的转化操作相匹配。您正在传递该类型的枚举值。

    它应该类似于 $conversionName = "OfflineConversions" 其中“OfflineConversions”恰好是 Web UI 转换部分中转换的名称。

    【讨论】:

    • 首先感谢您的回复,是的,我使用的是 Web 界面中显示的准确转换名称。它在 v201809 中工作,但在 V9 中我收到错误资源名称 'customers/9025381111/conversionActions/OfflineConv' is malformed: expected 'customers/{customer_id}/conversionActions/{ConversionType.conversion_type_id}'., at conversions[0].conversion_action
    【解决方案2】:

    ConversionName 已从 V9 中删除,使用 $conversionActionId 作为 github 上的示例。

    您需要尝试使用参数ctId从 Google Ads 用户界面中的“OfflineConversions”网址为 $conversionActionId

    Or try the solution from here.

    对于你的例子,替换这个

    $conversionName = ConversionActionType::WEBPAGE;
    

    在这

    $conversionName = {ctId  from url};
    

    【讨论】:

      【解决方案3】:

      您需要先创建点击转化

      click_conversion = adwords_client.get_type("ClickConversion")
      conversion_action_service = adwords_client.get_service('ConversionActionService')
          click_conversion.conversion_action = (
              conversion_action_service.conversion_action_path(
                  customer_id, conversion_action_id
              )
          )
      

      conversion_action_id 等同于之前版本的conversion_name。 您可以使用以下 sn-p 找到 id

      ads: GoogleAdsServiceClient = self.adwords_client.get_service('GoogleAdsService')
      pages = ads.search(query="SELECT conversion_action.id, conversion_action.name FROM conversion_action where conversion_action.name={conversion_name}", customer_id={customer_id})
          for page in pages:
              print(page.conversion_action)
      

      然后你上传转换

      click_conversion.gclid = gclid
      click_conversion.conversion_value = conversion_value
      click_conversion.conversion_date_time = conversion_time
      click_conversion.currency_code = currency_code
      
      conversion_upload_service = self.adwords_client.get_service("ConversionUploadService")
      request = self.adwords_client.get_type("UploadClickConversionsRequest")
      request.customer_id = customer_id
      request.conversions.append(click_conversion)
      request.partial_failure = True
      conversion_upload_response = (
          conversion_upload_service.upload_click_conversions(
              request=request,
          )
      )
      uploaded_click_conversion = conversion_upload_response.results[0]
      print(
          f"Uploaded conversion that occurred at "
          f'"{uploaded_click_conversion.conversion_date_time}" from '
          f'Google Click ID "{uploaded_click_conversion.gclid}" '
          f'to "{uploaded_click_conversion.conversion_action}"'
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-03
        • 1970-01-01
        • 2020-07-11
        • 2020-11-18
        • 2017-06-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多