Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 23 additions & 2 deletions examples/experiments/create_asset_optimization_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,24 @@ def main(
"""
googleads_service = client.get_service("GoogleAdsService")

# Query the asset group to find the associated campaign resource name.
query = f"""
SELECT asset_group.campaign
FROM asset_group
WHERE asset_group.id = {asset_group_id}
"""
search_response = googleads_service.search(
customer_id=customer_id, query=query
)
campaign_resource_name = None
for row in search_response:
campaign_resource_name = row.asset_group.campaign
break

if not campaign_resource_name:
print(f"Asset group with ID {asset_group_id} not found.")
sys.exit(1)

# Temp IDs
ASSET_1_TEMP_ID = "-1"
EXPERIMENT_TEMP_ID = "-2"
Expand All @@ -54,7 +72,7 @@ def main(
client,
customer_id,
ASSET_1_TEMP_ID,
"Fly to Mars with Interplanetary Cruises!",
"Fly to Mars!",
)
asset_operation_2 = create_image_asset_operation(
client,
Expand All @@ -76,7 +94,6 @@ def main(
experiment.optimize_assets_experiment.optimize_assets_experiment_subtype = (
client.enums.OptimizeAssetsExperimentSubtypeEnum.COMPARE_ASSETS
)
experiment.status = client.enums.ExperimentStatusEnum.SETUP

# 3. Create two ExperimentArm resources.
treatment_assets = [
Expand All @@ -87,6 +104,7 @@ def main(
client,
customer_id,
EXPERIMENT_TEMP_ID,
campaign_resource_name,
asset_group_id,
treatment_assets,
)
Expand Down Expand Up @@ -189,6 +207,7 @@ def create_arms_operations(
client: GoogleAdsClient,
customer_id: str,
experiment_temp_id: str,
campaign_resource_name: str,
asset_group_id: str,
treatment_assets: List[Tuple[str, Any]],
) -> List[MutateOperation]:
Expand All @@ -206,6 +225,7 @@ def create_arms_operations(
control.name = "Base Assets (Control)"
control.control = True
control.traffic_split = 50
control.campaigns.append(campaign_resource_name)

asset_group_info_control = experiment_arm_type.AssetGroupInfo()
asset_group_info_control.asset_group = googleads_service.asset_group_path(
Expand All @@ -223,6 +243,7 @@ def create_arms_operations(
treatment.name = "New Assets (Treatment)"
treatment.control = False
treatment.traffic_split = 50
treatment.campaigns.append(campaign_resource_name)

asset_group_info_treatment = experiment_arm_type.AssetGroupInfo()
asset_group_info_treatment.asset_group = googleads_service.asset_group_path(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ def main(client: GoogleAdsClient, customer_id: str, campaign_id: str) -> None:
experiment.resource_name = experiment_resource_name
experiment.name = f"ADOPT_AI_MAX Experiment #{uuid4()}"
experiment.type_ = client.enums.ExperimentTypeEnum.ADOPT_AI_MAX
experiment.status = client.enums.ExperimentStatusEnum.SETUP

# Create the control arm. Both arms in an intra-campaign experiment
# reference the same base campaign.
Expand Down