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

کمپین‌های Performance Max از نظر دارایی‌ها ویژگی‌های منحصر به فردی دارند.

  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.V22.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: GoogleAdsClient, customer_id: str, texts: List[str]
) -> List[str]:
    """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: GoogleAdsServiceClient = client.get_service(
        "GoogleAdsService"
    )

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

    # Send the operations in a single Mutate request.
    response: MutateGoogleAdsResponse = googleads_service.mutate(
        customer_id=customer_id,
        mutate_operations=operations,
    )
    asset_resource_names: List[str] = []
    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::V22::Services::GoogleAdsService::MutateOperation
      ->new({
        assetOperation =>
          Google::Ads::GoogleAds::V22::Services::AssetService::AssetOperation->
          new({
            create => Google::Ads::GoogleAds::V22::Resources::Asset->new({
                textAsset =>
                  Google::Ads::GoogleAds::V22::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;
}
      

دارایی‌های ایجاد شده خودکار

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

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

شما می‌توانید یک فید صفحه در حساب خود را با یک کمپین Performance Max مرتبط کنید تا به طور خودکار دارایی‌ها را تولید کند .

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

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

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

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

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

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

اتوماسیون هوشمند می‌تواند با تنظیم جهت ویدیو و کوتاه کردن هوشمندانه آنها برای برجسته کردن لحظات کلیدی، محتوای ویدیویی یوتیوب شما را بهبود بخشد . اگر ترجیح می‌دهید محتوای ویدیویی اصلی خود را حفظ کنید، AssetAutomationSetting از نوع GENERATE_ENHANCED_YOUTUBE_VIDEOS را روی OPTED_OUT تنظیم کنید.