קבוצות נכסים בקמפיינים למיקסום ביצועים

קבוצת נכסים בקמפיין למיקסום ביצועים מורכבת מהתמונות, הכותרות, התיאורים והסרטונים שאתם מוסיפים כשאתם יוצרים קמפיין למיקסום ביצועים. כדי לשפר את ביצועי המודעה, המערכת בוחרת באופן חכם את הנכסים שלכם ומשלבת ביניהם כדי להתאים אותם בצורה הטובה ביותר לערוץ הספציפי של Google Ads (כמו YouTube,‏ Gmail או חיפוש Google) שבו המודעה מוצגת.

אי אפשר לשתף קבוצת נכסים בין קמפיינים. כל קמפיין צריך לכלול לפחות קבוצת נכסים אחת. בכל קמפיין אפשר להשתמש ב-100 קבוצות נכסים לכל היותר.

קבוצות נכסים

קבוצת נכסים היא אוסף של נכסים שמתמקדים בנושא מסוים או קשורים לקהל יעד מסוים. המערכת משתמשת בקבוצת הנכסים כדי להרכיב את כל המודעות שלכם וליצור מלאי שטחי פרסום לכל הפורמטים הרלוונטיים של המודעות, בהתאם ליעד הפרסום שלכם. מידע נוסף על קבוצות נכסים

קבוצות נכסים מכילות כתובת URL סופית אחת או יותר. צריך לציין לפחות כתובת URL סופית אחת. משתמשים בכתובת ה-URL שהכי רלוונטית לנתיב ההמרה של קבוצת הנכסים והיעדים של הקמפיין. אי אפשר להחריג את כתובת ה-URL הסופית של קבוצת הנכסים מWEBPAGE הקריטריונים של הקמפיין.

AssetGroup מקושר לAsset על ידי יצירת AssetGroupAsset חדש וציון הפרטים הבאים:

  • שם המשאב של AssetGroup
  • שם המשאב של Asset
  • AssetFieldType מתוך Asset בAssetGroup

אפשר לקשר AssetGroup למספר אובייקטים של Asset. אפשר לקשר Asset לכמה קבוצות נכסים. ל-Asset אחד יכולים להיות סוגים שונים של שדות באובייקטים שונים של AssetGroup.

הגבלות:

  • בקשות AssetGroupOperation צריכות להיות אטומיות. אין תמיכה בכשל חלקי.
  • אי אפשר לשנות משאבים של קבוצת נכסים בתהליך אצווה באמצעות AssetGroupOperation. במקום זאת, אפשר להשתמש בפונקציה הרגילה GoogleAdsService.Mutate עם AssetGroupService כדי לשנות משאבים של קבוצת נכסים בתהליך אצווה.
  • AssetGroupAssetOperation יכול לשמש בתוך BatchJobService לקישור או לביטול הקישור של נכסים לקבוצת נכסים.

אתם יכולים ליצור אובייקטים של AssetGroup בקמפיינים למיקסום הביצועים לקמעונאות בלי לעמוד בדרישות המינימליות לגבי נכסים. עם זאת, ניסיון לקשר בין Asset לבין AssetGroup באמצעות AssetGroupAsset בכל קמפיין למיקסום הביצועים גורם להפעלת כל דרישות הנכסים. במילים אחרות, אובייקטים מסוג AssetGroup בקמפיינים למיקסום ביצועים של מוצרי קמעונאות יכולים להיות רק באחד משני מצבים:

  • ללא אובייקטים מקושרים של Asset
  • עמידה בכל Assetהדרישות

מומלץ להעלות נכסים כדי למקסם את פוטנציאל החשיפה בכל מלאי שטחי הפרסום. עם זאת, צריך לקשר את כל הנכסים הנדרשים בבקשה אחת, בלי להשתמש בכשל חלקי, ואי אפשר להוסיף נכסים לקבוצות נכסים בנפרד באמצעות בקשות נפרדות.

Java

/** Creates a list of MutateOperations that create a new AssetGroup. */
private List<MutateOperation> createAssetGroupOperations(
    long customerId,
    String assetGroupResourceName,
    List<String> headlineAssetResourceNames,
    List<String> descriptionAssetResourceNames,
    boolean brandGuidelinesEnabled)
    throws IOException {
  List<MutateOperation> mutateOperations = new ArrayList<>();
  String campaignResourceName =
      ResourceNames.campaign(customerId, PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID);
  // Creates the AssetGroup.
  AssetGroup assetGroup =
      AssetGroup.newBuilder()
          .setName("Performance Max asset group #" + getPrintableDateTime())
          .setCampaign(campaignResourceName)
          .addFinalUrls("http://www.example.com")
          .addFinalMobileUrls("http://www.example.com")
          .setStatus(AssetGroupStatus.PAUSED)
          .setResourceName(assetGroupResourceName)
          .build();
  AssetGroupOperation assetGroupOperation =
      AssetGroupOperation.newBuilder().setCreate(assetGroup).build();
  mutateOperations.add(
      MutateOperation.newBuilder().setAssetGroupOperation(assetGroupOperation).build());

  // For the list of required assets for a Performance Max campaign, see
  // https://developers.google.com/google-ads/api/docs/performance-max/assets

  // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
  // and providing:
  //   the resource name of the AssetGroup
  //   the resource name of the Asset
  //   the field_type of the Asset in this AssetGroup.

  // To learn more about AssetGroups, see
  // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups

  // Links the previously created multiple text assets.

  // Links the headline assets.
  for (String resourceName : headlineAssetResourceNames) {
    mutateOperations.add(
        createAssetGroupAssetMutateOperation(
            AssetFieldType.HEADLINE, resourceName, assetGroupResourceName));
  }

  // Links the description assets.
  for (String resourceName : descriptionAssetResourceNames) {
    mutateOperations.add(
        createAssetGroupAssetMutateOperation(
            AssetFieldType.DESCRIPTION, resourceName, assetGroupResourceName));
  }

  // Creates and links the lo<ng headline tex>t asset.
  ListMutateOperation createAndLinkTextAssetOperations =
      createAndLinkTextAsset(customerId, "Travel the World", AssetFieldType.LONG_HEADLINE);
  mutateOperations.addAll(createAndLinkTextAssetOperations);

  // Creates and links t<he business nam>e and logo assets.
  ListMutateOperation createAndLinkBrandAssets =
      createAndLinkBrandAssets(
          customerId,
          brandGuidelinesEnabled,
          "Interplanetary Cruises",
          "https://gaagl.page.link/bjYi",
          "Marketing Logo");
  mutateOperations.addAll(createAndLinkBrandAssets);

  // Creates and links the image assets.

  // Creates and links the Marketing Image Asset.
  createAndLinkTextAssetOperations =
      createAndLinkImageAsset(
          customerId,
          "https://gaagl.page.link/Eit5",
          AssetFieldType.MARKETING_IMAGE,
          "Marketing Image");
  mutateOperations.addAll(createAndLinkTextAssetOperations);

  // Creates and links the Square Marketing Image Asset.
  createAndLinkTextAssetOperations =
      createAndLinkImageAsset(
          customerId,
          "https://gaagl.page.link/bjYi",
          AssetFieldType.SQUARE_MARKETING_IMAGE,
          "Square Markerations.addAll(createAndLinkTextAssetOperations);

  return mutateOperations;
}
AddPerformanceMaxCampaign.java
      

C#‎

/// <summary>
/// Creates a list of MutateOperations that create a new asset_group.
/// </summary>
/// <param name="campaignResource>Name"The campaign reso<urce n>ame./<param
/// param name="assetGro>upResourceName"The asset <group >resou<rce name./param
/// param name="he>adlineAssetResourceNames"The <headli>ne as<set resource names./param
/// param name=&>quot;descriptionAssetResourceNames"T<he des>cript<ion asset resource
/// names./para>m
/// param name="resourceNameGen<erator>"<;A generator for un>ique temporary ID'<s./par>am
//</ param name="config"The >Google Ads config./param
/// param name=&q<uot;br>andGu<ideline>sEnabled"Whether or not to enable brand guidelines./pa<ram
/// >returnsA list< of MutateOpera>tions that create the new asset group./returns
private ListMutateOperation CreateAssetGroupOperations(
  <  stri>ng campaignResourceName,
    string a<ssetGr>oupResourceName,
    Liststring headlineAssetResourceNames,
    Liststring descriptionAssetResourceNames,
    AssetTemporaryResourceNameGenerator resourceNameGenerato<r,
    GoogleAd>sConfig config,
    bo<ol brandGuideli>nesEnabled)
{
    ListMutateOperation operations = new ListMutateOperation();

    // Create the AssetGroup
    operations.Add(
        new MutateOperation()
        {
            AssetGroupOperation = new AssetGroupOperation()
            {
                Create = new AssetGroup()
                {
                    Name = "Performance Max asset group #" +
                        ExampleUtilities.GetRandomString(),
                    Campaign = campaignResourceName,
                    FinalUrls = { "http://www.example.com" },
                    FinalMobileUrls = { "http://www.example.com" },
                    Status = AssetGroupStatus.Paused,
                    ResourceName = assetGroupResourceName
                }
            }
        }
    );

    // For the list of required assets for a Performance Max campaign, see
    // https://developers.google.com/google-ads/api/docs/performance-max/assets

    // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
    // and providing:
    //   the resource name of the AssetGroup
    //   the resource name of the Asset
    //   the field_type of the Asset in this AssetGroup.
    //
    // To learn more about AssetGroups, see
    // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups

    // Link the previously created multiple text assets.

    // Link the headline assets.
    foreach (string resourceName in headlineAssetResourceNames)
    {
        operations.Add(
            new MutateOperation()
            {
                AssetGroupAssetOperation = new AssetGroupAssetOperation()
                {
                    Create = new AssetGroupAsset()
                    {
                        FieldType = AssetFieldType.Headline,
                        AssetGroup = assetGroupResourceName,
                        Asset = resourceName
                    }
                }
            }
        );
    }

    // Link the description assets.
    foreach (string resourceName in descriptionAssetResourceNames)
    {
        operations.Add(
            new MutateOperation()
            {
                AssetGroupAssetOperation = new AssetGroupAssetOperation()
                {
                    Create = new AssetGroupAsset()
                    {
                        FieldType = AssetFieldType.Description,
                        AssetGroup = assetGroupResourceName,
                        Asset = resourceName
                    }
                }
            }
        );
    }

    // Create and link the brand assets.
    operations.AddRange(
        CreateAndLinkBrandAssets(
            assetGroupResourceName,
            campaignResourceName,
            resourceNameGenerator,
            "Interplanetary Cruises",
            "https://gaagl.page.link/bjYi",
            "Marketing Logo",
            config,
            brandGuidelinesEnabled
        )
    );

    // Create and link the long headline text asset.
    operations.AddRange(
        CreateAndLinkTextAsset(
            assetGroupResourceName,
            resourceNameGenerator.Next(),
            "Travel the World",
            AssetFieldType.LongHeadline
        )
    );

    // Create and link the image assets.

    // Create and link the Marketing Image Asset.
    operations.AddRange(
        CreateAndLinkImageAsset(
            assetGroupResourceName,
            resourceNameGenerator.Next(),
            "https://gaagl.page.link/Eit5",
            AssetFieldType.MarketingImage,
            "Marketing Image",
            config
        )
    );

    // Create and link the Square Marketing Image Asset.
    operations.AddRange(
        CreateAndLinkImageAsset(
            assetGroupResourceName,
            resourceNameGenerator.Next(),
            "https://gaa         AssetFieldType.SquareMarketingImage,
            "Square Marketing Image",
            config
        )
    );

    return operations;
}
AddPerformanceMaxCampaign.cs
      

PHP

private static function createAssetGroupOperations(
    int $customerId,
    array $headlineAssetResourceNames,
    array $descriptionAssetResourceNames,
    bool $brandGuidelinesEnabled
): array {
    $operations = [];
    // Creates a new mutate operation that creates an asset group operation.
    $operations[] = new MutateOperation(
        [
        'asset_group_operatio>n' = new AssetGroupOperation(
            [
            &#>39;create' = new AssetGroup(
                [
                &>#39;resource_name' = ResourceNames::forAssetGroup(
                    $customerId,
                    self::ASSET_GROUP_TEMPORARY_ID
                ),
>                'name' = 'Performance Max asset group #' . Helper::getPrintable>Datetime(),
                'campaign' = ResourceNames::forCampaign(
                    $customerId,
                    self::PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID
 >               ),
                'final_urls' = ['htt>p://www.example.com'],
                'final_m>obile_urls' = ['http://www.example.com'],
                'status' = AssetGroupStatus::PAUSED
                ]
            )
            ]
        )
        ]
    );

    // For the list of required assets for a Performance Max campaign, see
    // https://developers.google.com/google-ads/api/docs/performance-max/assets

    // An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
    // and providing:
    // -  the resource name of the AssetGroup
    // -  the resource name of the Asset
    // -  the field_type of the Asset in this AssetGroup
    //
    // To learn more about AssetGroups, see
    // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups.

    // Links the previously created multiple text assets.

    // Links the headline assets.
    foreach ($headlineAssetResourceNames as $resourceName) {
        $opera>tions[] = new MutateOperation(
            [
            'asset_group_a>sset_operation' = new AssetGroupAssetOperation(
                [
   >             'create' = new AssetGroupAsset>(
                    [
                    'asset' = $resourceName,
                    'asset_group' = ResourceNames::forAssetGroup(
                        $cust>omerId,
                        self::ASSET_GROUP_TEMPORARY_ID
                    ),
                    'field_type' = AssetFieldType::HEADLINE
                    ]
                )
                ]
            )
            ]
        );
    }
    // Links the description assets.
    foreach ($descriptionAssetResource>Names as $resourceName) {
        $operations[] = new MutateOperation(
    >        [
            'asset_group_asset_operation' = new AssetGr>oupAssetOperation(
                [
              >  'create' = new AssetGroupAsset(
                    [
                    'asset' = $resourceName,
                    'asset_group' = ResourceNames::forA>ssetGroup(
                        $customerId,
                        self::ASSET_GROUP_TEMPORARY_ID
                    ),
                    'field_type' = AssetFieldType::DESCRIPTION
                    ]
                )
                ]
            )
            ]
        );
    }

    // Creates and links the long headline text asset.
    $operations = array_merge(
        $operations,
        self::createAndLinkTextAsset(
            $customerId,
            'Travel the World',
            AssetFieldType::LONG_HEADLINE
        )
    );
    // Creates and links the business name text asset.
    $operations = array_merge(
        $operations,
        self::createAndLinkBrandAssets(
            $customerId,
            $brandGuidelinesEnabled,
            'Interplanetary Cruises',
            'https://gaagl.page.link/bjYi',
            'Marketing Logo'
        )
    );

    // Creates and links the image assets.

    // Creates and links the Marketing Image Asset.
    $operations = array_merge(
        $operations,
        self::createAndLinkImageAsset(
            $customerId,
            'https://gaagl.page.link/Eit5',
            AssetFieldType::MARKETING_IMAGE,
            'Marketing Image'
        )
    );
    // Creates and links the Square Marketing Image Asset.
    $operations = array_merge(
        $operations,
        self::createAndLustomerId,
            'https://gaagl.page.link/bjYi',
            AssetFieldType::SQUARE_MARKETING_IMAGE,
            'Square Marketing Image'
        )
    );

    return $operations;
}AddPerformanceMaxCampaign.php
      

Python

def create_asset_group_operation(
    client: GoogleAdsClient,
    customer_id: str,
    headline_asset_resource_names: List[str],
    description_asset_resource_names: List[str],
    brand_guidelines_enabled: bool,
) -> List[MutateOperation]:
    """Creates a list of MutateOperations that create a new asset_group.

    A temporary ID will be assigned to this asset group so that it can
    be referenced by other objects being created in the same Mutate request.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        headline_asset_resource_names: a list of headline resource names.
        description_asset_resource_names: a list of description resource names.
        brand_guidelines_enabled: a boolean value indicating if the campaign is
          enabled for brand guidelines.

    Returns:
        MutateOperations that create a new asset group and related assets.
    """
    asset_group_service: AssetGroupServiceClient = client.get_service(
        "AssetGroupService"
    )
    campaign_service: CampaignServiceClient = client.get_service(
        "CampaignService"
    )

    operations: List[MutateOperation] = []

    # Create the AssetGroup
    mutate_operation: MutateOperation = client.get_type("MutateOperation")
    asset_group: AssetGroup = mutate_operation.asset_group_operation.create
    asset_group.name = f"Performance Max asset group #{uuid4()}"
    asset_group.campaign = campaign_service.campaign_path(
        customer_id, _PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID
    )
    asset_group.final_urls.append("http://www.example.com")
    asset_group.final_mobile_urls.append("http://www.example.com")
    asset_group.status = client.enums.AssetGroupStatusEnum.PAUSED
    asset_group.resource_name = asset_group_service.asset_group_path(
        customer_id,
        _ASSET_GROUP_TEMPORARY_ID,
    )
    operations.append(mutate_operation)

    # For the list of required assets for a Performance Max campaign, see
    # https://developers.google.com/google-ads/api/docs/performance-max/assets

    # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
    # and providing:
    #   the resource name of the AssetGroup
    #   the resource name of the Asset
    #   the field_type of the Asset in this AssetGroup.
    #
    # To learn more about AssetGroups, see
    # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups

    # Link the previously created multiple text assets.

    # Link the headline assets.
    for resource_name in headline_asset_resource_names:
        mutate_operation: MutateOperation = client.get_type("MutateOperation")
        asset_group_asset: AssetGroupAsset = (
            mutate_operation.asset_group_asset_operation.create
        )
        asset_group_asset.field_type = client.enums.AssetFieldTypeEnum.HEADLINE
        asset_group_asset.asset_group = asset_group_service.asset_group_path(
            customer_id,
            _ASSET_GROUP_TEMPORARY_ID,
        )
        asset_group_asset.asset = resource_name
        operations.append(mutate_operation)

    #  Link the description assets.
    for resource_name in description_asset_resource_names:
        mutate_operation: MutateOperation = client.get_type("MutateOperation")
        asset_group_asset: AssetGroupAsset = (
            mutate_operation.asset_group_asset_operation.create
        )
        asset_group_asset.field_type = (
            client.enums.AssetFieldTypeEnum.DESCRIPTION
        )
        asset_group_asset.asset_group = asset_group_service.asset_group_path(
            customer_id,
            _ASSET_GROUP_TEMPORARY_ID,
        )
        asset_group_asset.asset = resource_name
        operations.append(mutate_operation)

    # Create and link the long headline text asset.
    mutate_operations: List[MutateOperation] = create_and_link_text_asset(
        client,
        customer_id,
        "Travel the World",
        client.enums.AssetFieldTypeEnum.LONG_HEADLINE,
    )
    operations.extend(mutate_operations)

    # Create and link the business name and logo asset.
    mutate_operations: List[MutateOperation] = create_and_link_brand_assets(
        client,
        customer_id,
        brand_guidelines_enabled,
        "Interplanetary Cruises",
        "https://gaagl.page.link/bjYi",
        "Marketing Logo",
    )
    operations.extend(mutate_operations)

    # Create and link the image assets.

    # Create and link the Marketing Image Asset.
    mutate_operations: List[MutateOperation] = create_and_link_image_asset(
        client,
        customer_id,
        "https://gaagl.page.link/Eit5",
        client.enums.AssetFieldTypeEnum.MARKETING_IMAGE,
        "Marketing Image",
    )
    operations.extend(mutate_operations)

    # Create and link the Square Marketing Image Asset.
    mutate_operations: List[MutateOperation] = create_and_link_image_asset(
        client,
        customer_id,
        "https://gaagl.page.linums.AssetFieldTypeEnum.SQUARE_MARKETING_IMAGE,
        "Square Marketing Image",
    )
    operations.extend(mutate_operations)
    return operationsadd_performance_max_campaign.py
      

Ruby

# Creates a list of MutateOperations that create a new asset_group.
#
# A temporary ID will be assigned to this asset group so that it can
# be referenced by other objects being created in the same Mutate request.
def create_asset_group_operation(
    client,
    customer_id,
    headline_asset_resource_names,
    description_asset_resource_names,
    brand_guidelines_enabled)
  operations = []

  # Create the AssetGroup
  operations << client.operation.mutate do |m|
    m.asset_group_operation = client.operation.create_resource.asset_group do |ag|
      ag.name = "Performance Max asset group #{SecureRandom.uuid}"
      ag.campaign = client.path.campaign(
        customer_id,
        PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID)
      ag.f<<inal_urls  "http://www.example.com"
      a<<g.final_mobile_urls  "http://www.example.com"
      ag.status = :PAUSED
      ag.resource_name = client.path.asset_group(
        customer_id,
        ASSET_GROUP_TEMPORARY_ID)
    end
  end

  # For the list of required assets for a Performance Max campaign, see
  # https://developers.google.com/google-ads/api/docs/performance-max/assets
  #
  # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
  # and providing:
  #   the resource name of the AssetGroup
  #   the resource name of the Asset
  #   the field_type of the Asset in this AssetGroup.
  #
  # To learn more about AssetGroups, see
  # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups

  # Link the previously created multiple text assets.

  # Link the headline assets.
  headline_asset_resource_names.each do |<<resource_name|
    operations  client.operation.mutate do |m|
      m.asset_group_asset_operation = client.operation.create_resource
          .asset_group_asset do |aga|
        aga.field_type = :HEADLINE
        aga.asset_group = client.path.asset_group(
          customer_id,
          ASSET_GROUP_TEMPORARY_ID)
        aga.asset = resource_name
      end
    end
  end

  #  Link the description assets.
  description_asset_resource_names.each do |<<resource_name|
    operations  client.operation.mutate do |m|
      m.asset_group_asset_operation = client.operation.create_resource
          .asset_group_asset do |aga|
        aga.field_type = :DESCRIPTION
        aga.asset_group = client.path.asset_group(
          customer_id,
          ASSET_GROUP_TEMPORARY_ID)
        aga.asset = resource_name
      end
    end
  end

  # Create and link the long headline text asset.
  operations += create_and_link_text_asset(
    client,
    customer_id,
    "Travel the World",
    :LONG_HEADLINE)

  # Create and link the business name and logo asset.
  operations += create_and_link_brand_assets(
    client,
    customer_id,
    brand_guidelines_enabled,
    "Interplanetary Cruises",
    "https://gaagl.page.link/bjYi",
    "Marketing Logo")

  # Create and link the image assets.

  # Create and link the Marketing Image Asset.
  operations += create_and_link_image_asset(
    client,
    customer_id,
    "https://gaagl.page.link/Eit5",
    :MARKETING_IMAGE,
    "Marketing Image")

  # Create and link the Square Marketing Image Asset.
  operations += create_and_link_image_asset(
    client,
    customer_id,
    "https://gaagUARE_MARKETING_IMAGE,
    "Square Marketing Image")

  operations
endadd_performance_max_campaign.rb
      

Perl

sub create_asset_group_operations {
  my (
    $customer_id,
    $headline_asset_resource_names,
    $description_asset_resource_names,
    $brand_guidelines_enabled
  ) = @_;

  my $operations = [];
  # Create a mutate operation that creates an asset group operation.
  push @$operations,
    Google::Ads::GoogleAds::V25::Services::GoogleAdsService::MutateOperation->
    new({
      assetGroupOperation =>
        Google::Ads::GoogleAds::V25::Services::AssetGroupService::AssetGroupOperation
        ->new({
          create => Google::Ads::GoogleAds::V25::Resources::AssetGroup->new({
              resourceName =>
                Google::Ads::GoogleAds::V25::Utils::ResourceNames::asset_group(
                $customer_id, ASSET_GROUP_TEMPORARY_ID
                ),
              name     => "Performance Max asset group #" . uniqid(),
              >campaign =
                Google::Ads::GoogleAds::V25::Utils::ResourceNames::campaign(
                $customer_id, PERFORMANCE_MAX_CAMPAIGN_TEMPORARY_ID
                ),
              finalUr>ls       = ["http://www.example.com"],
           >   finalMobileUrls = ["http://www.example.com"],
 >             status          =
                Google::Ads::GoogleAds::V25::Enums::AssetGroupStatusEnum::PAUSED
            })})});

  # For the list of required assets for a Performance Max campaign, see
  # https://developers.google.com/google-ads/api/docs/performance-max/assets.

  # An AssetGroup is linked to an Asset by creating a new AssetGroupAsset
  # and providing:
  # - the resource name of the AssetGroup
  # - the resource name of the Asset
  # - the fieldType of the Asset in this AssetGroup
  #
  # To learn more about AssetGroups, see
  # https://developers.google.com/google-ads/api/docs/performance-max/asset-groups.

  # Link the previously created multiple text assets.

  # Link the headline assets.
  foreach my $resource_name (@$headline_asset_resource_names) {
    push @$operations,
      Google::Ads::GoogleAds::V25::Services::GoogleAdsSe>rvice::MutateOperation
      -new({
    >    assetGroupAssetOperation =
          Google::Ads::GoogleAds::V25::Services::AssetGroupAssetService::AssetG>roupAssetOperation
       >   -new({
            create =
              Google::Ads::GoogleAds::V2>5::Resources::AssetGroupAsset-new(>{
                asset      = $resource_name>,
                assetGroup =
                  Google::Ads::GoogleAds::V25::Utils::ResourceNames::asset_group(
                  $customer_id, ASSET_GROUP_TEMPORARY_ID
                  >),
                fieldType = HEADLINE
              })})});
  }

  # Link the description assets.
  foreach my $resource_name (@$description_asset_resource_names) {
    push @$operations,
      Google::Ads::GoogleAds::V25::Services::GoogleAdsSe>rvice::MutateOperation
      -new({
    >    assetGroupAssetOperation =
          Google::Ads::GoogleAds::V25::Services::AssetGroupAssetService::AssetG>roupAssetOperation
       >   -new({
            create =
              Google::Ads::GoogleAds::V2>5::Resources::AssetGroupAsset-new(>{
                asset      = $resource_name>,
                assetGroup =
                  Google::Ads::GoogleAds::V25::Utils::ResourceNames::asset_group(
                  $customer_id, ASSET_GROUP_TEMPORARY_ID
                  >),
                fieldType = DESCRIPTION
              })})});
  }

  # Create and link the long headline text asset.
  push @$operations,
    @{create_and_link_text_asset($customer_id, "Travel the World",
      LONG_HEADLINE)};

  # Create and link the business name and logo asset.
  push @$operations,
    @{
    create_and_link_brand_assets(
      $customer_id,             $brand_guidelines_enabled,
      "Interplanetary Cruises", "https://gaagl.page.link/bjYi",
      "Marketing Logo"
    )};

  # Create and link the image assets.

  # Create and link the marketing image asset.
  push @$operations,
    @{
    create_and_link_image_asset(
      $customer_id,    "https://gaagl.page.link/Eit5",
      MARKETING_IMAGE, "Marketing Image"
    )};

  # Create and link the square marketing image asset.
  push @$operations,
    @{
    create_and_link_image_asset(
      $customer_id,           "https://gaagl.page.linkTING_IMAGE, "Square Marketing Image"
    )};

  return $operations;
}add_performance_max_campaign.pl
      

curl

קמפיינים למיקסום הביצועים של Google לבעלי מקצוע

לקמפיינים למיקסום הביצועים ב-Google לבעלי מקצוע (GLS PMax) יש כמה מאפיינים ייחודיים שקשורים לקבוצות של נכסים:

  • דילוג על דרישות מינימליות לגבי נכסים: בניגוד לקמפיינים רגילים למיקסום הביצועים, בקמפיינים למיקסום הביצועים של GLS לא נדרשים נכסים רגילים (כמו כותרות, תיאורים או תמונות) כדי להציג מודעות. לכן, אפשר ליצור אובייקטים של AssetGroup בלי אובייקטים משויכים של AssetGroupAsset.
  • פרטי Google בעלי מקצוע: אפשר להגדיר מטא-נתונים של מודעות 'Google בעלי מקצוע' בקבוצת נכסים על ידי מילוי השדה google_local_services_info בהודעה GoogleLocalServicesInfo:
    • category_id (מחרוזת, לא ניתן לשינוי, אופציונלי): מציין את מזהה הקטגוריה של Google בעלי מקצוע (בפורמט XCAT, לדוגמה, xcat:service_area_business_plumber). אי אפשר לשנות את השדה הזה אחרי שיוצרים את AssetGroup.
    • callouts (repeated LocalServicesCallout): רשימה של היתרונות המרכזיים שנבחרו להצגה, כשכל אחד מהם מפנה אל callout_id תקין.
      • אימות: ה-API מבצע אימות בצד השרת כדי לוודא שכל callout_id שסופק תקף לקטגוריה וללוקאל הספציפיים של המפרסם.
      • יכולת שינוי: אי אפשר לשנות את category_id, אבל אפשר לשנות את הרשימה callouts. אפשר להוסיף, להחליף או לנקות (על ידי העברת רשימה ריקה או מופע ברירת מחדל למסכת השדות google_local_services_info.callouts) את ההדגשות בפעולות עדכון עוקבות.

תצוגה מקדימה של מודעות בקבוצות נכסים

אחרי שיוצרים קבוצות נכסים ומקשרים אליהן נכסים, אפשר ליצור תצוגה מקדימה שאפשר לשתף כדי לראות איך נראות המודעות שנוצרו מכל קבוצת נכסים.

אפשר להעביר את מזהי קבוצות הנכסים אל ShareablePreviewService.GenerateShareablePreviews כדי לאחזר את כתובות ה-URL של תצוגות מקדימות של מודעות שרוצים לשתף עם המשתמשים, יחד עם חותמת הזמן של תפוגת התצוגות המקדימות.

מספר קבוצות נכסים

אתם יכולים ליצור קבוצות נכסים ייחודיות לכתובות URL סופיות שונות אם הנכסים לא מספיק כלליים כדי שאפשר יהיה להשתמש בהם בכתובות URL שונות בדומיין, ואם אתם משתמשים בהתאמת כתובת URL סופית.

אתם יכולים גם ליצור כמה קבוצות נכסים לאותה כתובת URL סופית, אם אתם רוצים להתאים את הנכסים לקהלים שונים. אפשר גם ליצור כמה קבוצות נכסים לכל נושא.