دارایی ها در کمپین حداکثر عملکرد

کمپین های حداکثر عملکرد دارای ویژگی های منحصر به فردی در مورد دارایی ها هستند.

  1. حداقل تعداد مورد نیاز دارایی از انواع مختلف وجود دارد.
  2. دارایی ها با هم در مجموعه ای به نام AssetGroup گروه بندی می شوند که منحصر به کمپین های Performance Max است.
  3. برخی از دارایی ها را می توان به طور خودکار با یادگیری ماشین تولید کرد.

نمونه کد

قطعه کد زیر ایجاد دارایی های مکرر لازم را در یک درخواست جدید نشان می دهد:

/** Creates multiple text assets and returns the list of resource names. */
private List<String> createMultipleTextAssets(
    GoogleAdsClient googleAdsClient, long customerId, List<String> texts) {
  List<MutateOperation> mutateOperations = new ArrayList<>();
  for (String text : texts) {
    Asset asset = Asset.newBuilder().setTextAsset(TextAsset.newBuilder().setText(text)).build();
    AssetOperation assetOperation = AssetOperation.newBuilder().setCreate(asset).build();
    mutateOperations.add(MutateOperation.newBuilder().setAssetOperation(assetOperation).build());
  }

  List<String> assetResourceNames = new ArrayList<>();
  // Creates the service client.
  try (GoogleAdsServiceClient googleAdsServiceClient =
      googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
    // Sends the operations in a single Mutate request.
    MutateGoogleAdsResponse response =
        googleAdsServiceClient.mutate(Long.toString(customerId), mutateOperations);
    for (MutateOperationResponse result : response.getMutateOperationResponsesList()) {
      if (result.hasAssetResult()) {
        assetResourceNames.add(result.getAssetResult().getResourceName());
      }
    }
    printResponseDetails(response);
  }
  return assetResourceNames;
}
      
/// <summary>
/// Creates multiple text assets and returns the list of resource names.
/// </summary>
/// <param name="client">The Google Ads Client.</param>
/// <param name="customerId">The customer's ID.</param>
/// <param name="texts">The texts to add.</param>
/// <returns>A list of asset resource names.</returns>
private List<string> CreateMultipleTextAssets(
    GoogleAdsClient client,
    long customerId,
    string[] texts)
{
    // Get the GoogleAdsService.
    GoogleAdsServiceClient googleAdsServiceClient =
        client.GetService(Services.V17.GoogleAdsService);

    MutateGoogleAdsRequest request = new MutateGoogleAdsRequest()
    {
        CustomerId = customerId.ToString()
    };

    foreach (string text in texts)
    {
        request.MutateOperations.Add(
            new MutateOperation()
            {
                AssetOperation = new AssetOperation()
                {
                    Create = new Asset()
                    {
                        TextAsset = new TextAsset()
                        {
                            Text = text
                        }
                    }
                }
            }
        );
    }

    // Send the operations in a single Mutate request.
    MutateGoogleAdsResponse response = googleAdsServiceClient.Mutate(request);

    List<string> assetResourceNames = new List<string>();

    foreach (MutateOperationResponse operationResponse in response.MutateOperationResponses)
    {
        MutateAssetResult assetResult = operationResponse.AssetResult;
        assetResourceNames.Add(assetResult.ResourceName);
    }

    PrintResponseDetails(response);

    return assetResourceNames;
}

      
private static function createMultipleTextAssets(
    GoogleAdsClient $googleAdsClient,
    int $customerId,
    array $texts
): array {
    // Here again, we use the GoogleAdService to create multiple text assets in a single
    // request.
    $operations = [];
    foreach ($texts as $text) {
        // Creates a mutate operation for a text asset.
        $operations[] = new MutateOperation([
            'asset_operation' => new AssetOperation([
                'create' => new Asset(['text_asset' => new TextAsset(['text' => $text])])
            ])
        ]);
    }

    // Issues a mutate request to add all assets.
    $googleAdsService = $googleAdsClient->getGoogleAdsServiceClient();
    /** @var MutateGoogleAdsResponse $mutateGoogleAdsResponse */
    $mutateGoogleAdsResponse =
        $googleAdsService->mutate(MutateGoogleAdsRequest::build($customerId, $operations));

    $assetResourceNames = [];
    foreach ($mutateGoogleAdsResponse->getMutateOperationResponses() as $response) {
        /** @var MutateOperationResponse $response */
        $assetResourceNames[] = $response->getAssetResult()->getResourceName();
    }
    self::printResponseDetails($mutateGoogleAdsResponse);

    return $assetResourceNames;
}
      
def create_multiple_text_assets(client, customer_id, texts):
    """Creates multiple text assets and returns the list of resource names.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        texts: a list of strings, each of which will be used to create a text
          asset.

    Returns:
        asset_resource_names: a list of asset resource names.
    """
    # Here again we use the GoogleAdService to create multiple text
    # assets in a single request.
    googleads_service = client.get_service("GoogleAdsService")

    operations = []
    for text in texts:
        mutate_operation = client.get_type("MutateOperation")
        asset = mutate_operation.asset_operation.create
        asset.text_asset.text = text
        operations.append(mutate_operation)

    # Send the operations in a single Mutate request.
    response = googleads_service.mutate(
        customer_id=customer_id,
        mutate_operations=operations,
    )
    asset_resource_names = []
    for result in response.mutate_operation_responses:
        if result._pb.HasField("asset_result"):
            asset_resource_names.append(result.asset_result.resource_name)
    print_response_details(response)
    return asset_resource_names
      
# Creates multiple text assets and returns the list of resource names.
def create_multiple_text_assets(client, customer_id, texts)
  operations = texts.map do |text|
    client.operation.mutate do |m|
      m.asset_operation = client.operation.create_resource.asset do |asset|
        asset.text_asset = client.resource.text_asset do |text_asset|
          text_asset.text = text
        end
      end
    end
  end

  # Send the operations in a single Mutate request.
  response = client.service.google_ads.mutate(
    customer_id: customer_id,
    mutate_operations: operations,
  )

  asset_resource_names = []
  response.mutate_operation_responses.each do |result|
    if result.asset_result
      asset_resource_names.append(result.asset_result.resource_name)
    end
  end
  print_response_details(response)
  asset_resource_names
end
      
sub create_multiple_text_assets {
  my ($api_client, $customer_id, $texts) = @_;

  # Here again we use the GoogleAdService to create multiple text assets in a
  # single request.
  my $operations = [];
  foreach my $text (@$texts) {
    # Create a mutate operation for a text asset.
    push @$operations,
      Google::Ads::GoogleAds::V17::Services::GoogleAdsService::MutateOperation
      ->new({
        assetOperation =>
          Google::Ads::GoogleAds::V17::Services::AssetService::AssetOperation->
          new({
            create => Google::Ads::GoogleAds::V17::Resources::Asset->new({
                textAsset =>
                  Google::Ads::GoogleAds::V17::Common::TextAsset->new({
                    text => $text
                  })})})});
  }

  # Issue a mutate request to add all assets.
  my $mutate_google_ads_response = $api_client->GoogleAdsService()->mutate({
    customerId       => $customer_id,
    mutateOperations => $operations
  });

  my $asset_resource_names = [];
  foreach
    my $response (@{$mutate_google_ads_response->{mutateOperationResponses}})
  {
    push @$asset_resource_names, $response->{assetResult}{resourceName};
  }
  print_response_details($mutate_google_ads_response);

  return $asset_resource_names;
}
      

دارایی های ایجاد شده به صورت خودکار

اتوماسیون Google با استفاده از یادگیری ماشینی، دارایی‌های اضافی را در صورت نیاز برای پوشش همه کانال‌های مرتبط ایجاد می‌کند. دارایی‌ها به‌طور خودکار بر اساس کانال تبلیغاتی Google (مانند YouTube، Gmail یا Search) که تبلیغ شما در آن ارائه می‌شود، ترکیب و مطابقت داده می‌شوند.

دارایی های متنی

برای تولید خودکار دارایی‌ها، می‌توانید یک فید صفحه در حساب خود را با کمپین حداکثر عملکرد مرتبط کنید.

برای پیوند دادن یک فید صفحه با یک کمپین، از همان فرآیندی استفاده کنید که برای تبلیغات جستجوی پویا استفاده می شود:

  1. برای هر صفحه از وب سایت خود دارایی ایجاد کنید
  2. بسته بندی دارایی های خوراک صفحه در AssetSet
  3. AssetSet را با یک کمپین مرتبط کنید

پس از اینکه فید صفحه را مرتبط کردید، مطمئن شوید که AssetAutomationSetting از نوع TEXT_ASSET_AUTOMATION روی OPTED_IN تنظیم شده است. اگر هنگام ایجاد کمپین AssetAutomationSetting را تنظیم نکرده باشید، این تنظیم پیش فرض است.

استفاده از این تنظیم به این معنی است که کمپین شما می‌تواند از محتوای صفحه مقصد، دامنه، و دارایی‌های ارائه شده برای سفارشی کردن تبلیغات در صورت پیش‌بینی بهبود عملکرد استفاده کند. توصیه می کنیم این را به عنوان OPTED-IN رها کنید.

دارایی های ویدیویی

اگر ویدیویی را به گروه دارایی حداکثر عملکرد خود اضافه نکنید، ممکن است یک یا چند دارایی ویدیویی از دارایی‌های گروه دارایی شما ایجاد شود. اگر دیگر نمی‌خواهید ویدیوهای تولید شده به صورت خودکار در کمپین Performance Max شما ارائه شوند، می‌توانید ویدیوی سفارشی خود را آپلود کنید و ویدیوهای تولید شده به‌طور خودکار دیگر پخش نمی‌شوند.