Eksperymenty dotyczące optymalizacji komponentów testują różne kombinacje komponentów w kampaniach Performance Max, co pozwala porównać skuteczność różnych zestawów komponentów z zestawem podstawowym.
Ten przepływ pracy jest obsługiwany w przypadku ExperimentType.OPTIMIZE_ASSETS.
Konfiguracja
Aby skonfigurować eksperyment z optymalizacją komponentów:
- Utwórz nowy zasób i eksperyment z grupą kontrolną i kampanią eksperymentalną.
- Połącz nowy komponent z grupą plików w kampanii eksperymentalnej w ramach jednego żądania modyfikacji.
Wymagania wstępne
Zanim utworzysz eksperyment z optymalizacją komponentów, musisz mieć utworzoną kampanię Performance Max i zasób podstawowy AssetGroup (customers/{customer_id}/assetGroups/{asset_group_id}), który służy jako punkt odniesienia dla obu grup eksperymentalnych. W przypadku ADD_ASSETS_TO_ASSETLESS_RETAIL upewnij się, że przed utworzeniem eksperymentu podstawowy AssetGroup ma już co najmniej 1 ustawiony final_urls (aktywny eksperyment z komponentami blokuje możliwość edytowania podstawowego AssetGroup, a łączenie komponentów niestandardowych wymaga final_urls).
Kolejność operacji żądania
Te elementy są współzależne, dlatego musisz używać tymczasowych nazw zasobów, aby odwoływać się do zasobów utworzonych we wcześniejszych operacjach w ramach tego samego żądania.
Operacje w żądaniu muszą być wykonywane w tej kolejności:
- Utwórz co najmniej 1 zasób
Assetz tymczasowymi nazwami zasobów (np.customers/CUSTOMER_ID/assets/-1). Uwzględnij komponenty testowe oraz nowe komponenty markiBUSINESS_NAMEiLOGO, jeśli wskazówki dotyczące marki są włączone w kampanii detalicznej bez komponentów i bez dotychczasowych linków do marki (w takim przypadku połącz te komponenty marki z podstawowym zasobemCampaignza pomocą operacjiCampaignAssetnatychmiast po wykonaniu kroku 1). - Utwórz
Experimentz tymczasową nazwą zasobu (np.customers/CUSTOMER_ID/experiments/-2), polemtypeustawionym naOPTIMIZE_ASSETS, polemstatusustawionym naENABLEDi polemoptimize_assets_experiment.optimize_assets_experiment_subtypeustawionym na wybraną wartośćOptimizeAssetsExperimentSubtype(np.COMPARE_ASSETS). Utwórz 2 zasoby
ExperimentArmpołączone z tymczasową nazwą zasobu eksperymentu z kroku 2, ustawiając w każdej grupie eksperymentalnejcampaigns(na nazwę zasobu kampanii Performance Max),traffic_split(sumując do100) iasset_groups(ExperimentArm.AssetGroupInfo):- Grupa kontrolna (
control = true), gdzieasset_groupszawieraAssetGroupInfoz polemasset_groupustawionym na nazwę zasobu podstawowegoAssetGroup(customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID). Podczas testowania nowo dodanych komponentów reklamy w porównaniu z podstawową grupą komponentów (lub podczas korzystania z podtypówADD_ASSETS_TO_ASSETLESS_RETAILlubADD_VIDEO_ASSETS_TO_VIDEOLESS) pozostaw poleasset_group_assetsw grupie kontrolnej nieustawione. Podczas porównywania 2 różnych zestawów komponentów w ramachCOMPARE_ASSETSpodaj wpisyAssetGroupAssetInfogrupy kontrolnej (assetifield_type). - Kampania eksperymentalna (
control = false), gdzieasset_groupszawieraAssetGroupInfoz polemasset_groupustawionym na tę samą nazwę zasobu podstawowegoAssetGroup(customers/CUSTOMER_ID/assetGroups/ASSET_GROUP_ID) iasset_group_assets(repeatedAssetGroupAssetInfo) zawierający listę zasobówAssetifield_typedla kampanii eksperymentalnej, w tym nowo utworzony testAsset(customers/CUSTOMER_ID/assets/-1) z kroku 1. Gdy używaszADD_ASSETS_TO_ASSETLESS_RETAIL,asset_group_assetsw kampanii eksperymentalnej musi spełniać wszystkie minimalne wymagania dotyczące grupy plików (nie podawaj samych komponentów opcjonalnych, takich jakYOUTUBE_VIDEO), a wymagane linkiBUSINESS_NAMEiLOGOCampaignAssetna poziomie kampanii muszą być obecne lub utworzone w tym samym żądaniu, gdy w kampanii podstawowej są włączone wskazówki dotyczące marki.
- Grupa kontrolna (
Utwórz kolejne zasoby
AssetGroupAsset, które łączą komponenty testowe z kroku 1 (customers/CUSTOMER_ID/assets/-1) z podstawowym zasobemAssetGroupużywanym w grupach eksperymentalnych.
Java
This example is not yet available in Java; you can take a look at the other languages.
C#
This example is not yet available in C#; you can take a look at the other languages.
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
# 1. Create Assets with temporary resource names. # We create a text asset and an image asset to showcase different types. asset_operation_1 = create_text_asset_operation( client, customer_id, ASSET_1_TEMP_ID, "Fly to Mars!", ) asset_operation_2 = create_image_asset_operation( client, customer_id, ASSET_2_TEMP_ID, "https://gaagl.page.link/Eit5", "Mars Landscape View", ) # 2. Create an Experiment with a temporary resource name. experiment_operation = client.get_type("MutateOperation") experiment = experiment_operation.experiment_operation.create experiment.resource_name = googleads_service.experiment_path( customer_id, EXPERIMENT_TEMP_ID ) experiment.name = f"Interstellar Asset Experiment #{uuid4()}" experiment.type_ = client.enums.ExperimentTypeEnum.OPTIMIZE_ASSETS # Set the optimize assets experiment subtype to COMPARE_ASSETS. experiment.optimize_assets_experiment.optimize_assets_experiment_subtype = ( client.enums.OptimizeAssetsExperimentSubtypeEnum.COMPARE_ASSETS ) # 3. Create two ExperimentArm resources. treatment_assets = [ (ASSET_1_TEMP_ID, client.enums.AssetFieldTypeEnum.HEADLINE), (ASSET_2_TEMP_ID, client.enums.AssetFieldTypeEnum.MARKETING_IMAGE), ] arm_operations = create_arms_operations( client, customer_id, EXPERIMENT_TEMP_ID, campaign_resource_name, asset_group_id, treatment_assets, ) # 4. Create AssetGroupAssets linking the assets to the asset group. asset_group_asset_operation_1 = create_asset_group_asset_operation( client, customer_id, asset_group_id, ASSET_1_TEMP_ID, client.enums.AssetFieldTypeEnum.HEADLINE, ) asset_group_asset_operation_2 = create_asset_group_asset_operation( client, customer_id, asset_group_id, ASSET_2_TEMP_ID, client.enums.AssetFieldTypeEnum.MARKETING_IMAGE, ) # Send all operations in a single Mutate request. # The operations must be in this specific order. mutate_operations = [ asset_operation_1, asset_operation_2, experiment_operation, *arm_operations, asset_group_asset_operation_1, asset_group_asset_operation_2, ] response = googleads_service.mutate( customer_id=customer_id, mutate_operations=mutate_operations, )
Ruby
# 1. Create Assets with temporary resource names. # We create a text asset and an image asset to showcase different types. asset_operation_1 = create_text_asset_operation( client, customer_id, asset_1_temp_id, "Fly to Mars!", ) asset_operation_2 = create_image_asset_operation( client, customer_id, asset_2_temp_id, "https://gaagl.page.link/Eit5", "Mars Landscape View", ) # 2. Create an Experiment with a temporary resource name. experiment_operation = client.operation.mutate do |m| m.experiment_operation = client.operation.create_resource.experiment do |e| e.resource_name = client.path.experiment(customer_id, experiment_temp_id) e.name = "Interstellar Asset Experiment #{(Time.new.to_f * 1000).to_i}" e.type = :OPTIMIZE_ASSETS # Set the optimize assets experiment subtype to COMPARE_ASSETS. e.optimize_assets_experiment = client.resource.optimize_assets_experiment_info do |oae| oae.optimize_assets_experiment_subtype = :COMPARE_ASSETS end end end # 3. Create two ExperimentArm resources. treatment_assets = [ [asset_1_temp_id, :HEADLINE], [asset_2_temp_id, :MARKETING_IMAGE], ] arm_operations = create_arms_operations( client, customer_id, experiment_temp_id, campaign_resource_name, asset_group_id, treatment_assets, ) # 4. Create AssetGroupAssets linking the assets to the asset group. asset_group_asset_operation_1 = create_asset_group_asset_operation( client, customer_id, asset_group_id, asset_1_temp_id, :HEADLINE, ) asset_group_asset_operation_2 = create_asset_group_asset_operation( client, customer_id, asset_group_id, asset_2_temp_id, :MARKETING_IMAGE, ) # Send all operations in a single Mutate request. # The operations must be in this specific order. mutate_operations = [ asset_operation_1, asset_operation_2, experiment_operation, *arm_operations, asset_group_asset_operation_1, asset_group_asset_operation_2, ] response = client.service.google_ads.mutate( customer_id: customer_id, mutate_operations: mutate_operations, )
Perl
This example is not yet available in Perl; you can take a look at the other languages.
curl
Raport z eksperymentu
Zapoznaj się z przewodnikiem po raportach, aby dowiedzieć się, jak wysyłać zapytania do zasobu experiment i porównywać dane między grupami komponentów kontrolnych i eksperymentalnych.
Zakończenie programu
Po ocenie wyników możesz zakończyć eksperyment lub przekształcić go w kampanię za pomocą ExperimentService.
- Zakończ: jeśli nie jesteś zadowolony(-a) z wyników kampanii eksperymentalnej, użyj opcji
EndExperiment. Jest to operacja synchroniczna. - Przejdź na korzystanie: jeśli wolisz skuteczność grupy plików z kampanii eksperymentalnej, użyj opcji
GraduateExperiment. W ramach tego procesu pierwotna kampania podstawowa powiązana z grupą kontrolną zostaje wstrzymana, a kampania z grupy eksperymentalnej zostaje przekształcona w nową, niezależną kampanię. Jest to operacja synchroniczna.