This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from googleads import adwords | |
| from googleads import oauth2 | |
| def connect_to_adwords_api(): | |
| customer_id = 'xxx-xxx-xxxx' # This is client customer ID you see in the google ads UI | |
| oauth2_client = oauth2.GoogleRefreshTokenClient( | |
| client_id={GOOGLE_CLIENT_ID}, | |
| client_secret={GOOGLE_CLIENT_SECRET}, | |
| refresh_token={GOOGLE_REFRESH_TOKEN} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def create_and_assign_budget(): | |
| adwords_client = connect_to_adwords_api() | |
| # This bit here creates the budget | |
| budget_service = adwords_client.GetService('BudgetService', version='v201809') | |
| budget = { | |
| 'name': {an appropriate name}, # Doesn't need to be unique. Budget Id is what matters for uniqueness | |
| 'amount': { | |
| 'microAmount': int(round({budget_amount} * 1000000)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def create_draft(): | |
| adwords_client = connect_to_adwords_api() | |
| draft_service = adwords_client.GetService('DraftService', version='v201809') | |
| draft = { | |
| 'baseCampaignId': original_campaign_id, | |
| 'draftName': {draft_name} | |
| } | |
| draft_operation = {'operator': 'ADD', 'operand': draft} | |
| draft = draft_service.mutate([draft_operation])['value'][0] | |
| draft_campaign_id = draft['draftCampaignId'] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def change_draft_target_cpa(original_campaign_tcpa, original_campaign_name, draft_campaign_id): | |
| # Create Portfolio for new campaign | |
| draft_target_cpa = round(original_campaign_tcpa * (1-0.30), 2) | |
| draft_portfolio_name = '{0}-Test_XYZ_Draft_Portfolio'.format(original_campaign_name) | |
| adwords_client = connect_to_adwords_api() | |
| bidding_strategy_service = adwords_client.GetService('BiddingStrategyService', version='v201809') | |
| portfolio_config = { | |
| 'name': draft_portfolio_name, | |
| 'biddingScheme': { | |
| 'xsi_type': 'TargetCpaBiddingScheme', |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| with control_campaigns as ( | |
| select | |
| 'Control' as measurement_group | |
| , campaign_name as base_campaign | |
| , date | |
| , cost | |
| , conversions | |
| , conversion_value | |
| from | |
| fivetran.adwords.google_campaign_performance |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import pandas as pd | |
| def get_all_ad_groups_from_campaign(campaign_id): | |
| adwords_client = connect_to_adwords_api() | |
| ad_group_service = adwords_client.GetService('AdGroupService', version='v201809') | |
| selector = { | |
| 'fields': ['Id', 'Name', 'Status','TargetCpa'], | |
| 'paging': { | |
| 'startIndex': str(0), |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def create_experiment(experiment_name, base_campaign_id, draft_id, split_percent=50, split_type='COOKIE'): | |
| adwords_client = connect_to_adwords_api() | |
| trial_service = adwords_client.GetService('TrialService', version='v201809') | |
| trial = { | |
| 'draftId': draft_id, | |
| 'baseCampaignId': base_campaign_id, | |
| 'name': experiment_name, | |
| 'trafficSplitPercent': split_percent, | |
| 'trafficSplitType': split_type | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import pandas as pd | |
| import numpy as np | |
| raw_test_data = pd.read_csv('medium_ppc_inc_evaluate_dataset.csv') | |
| # You can access the csv above in this link: https://drive.google.com/open?id=1IOuneJr-QFDYGsJPRjQ8ra-5C4VczeOW | |
| raw_test_data['diff_conversions'] = raw_test_data['test_conversions'] - raw_test_data['ctl_conversions'] | |
| N = len(raw_test_data) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Customer Id | Device Id | Touchpoint Id | Touchpoint Date | Touchpoint Channel | Touchpoint is Lead | Touchpoint is Order | first touchpoint credit | last touchpoint to order credit | last touchpoint to lead credit | linear attribution to order credit | linear attribution to lead credit | position based to order credit | position based to lead credit | last touchpoint to order non dir credit | last touchpoint to lead non dir credit | linear attribution to order non dir credit | linear attribution to lead non dir credit | position based to order non dir credit | position based to lead non dir credit | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| XYZ | A | 1 | 06/01/2021 | Generic Paid Search | 100.00% | 0.00% | 0.00% | 4.76% | 50.00% | 40.00% | 50.00% | 0.00% | 0.00% | 5.56% | 50.00% | 40.00% | 50.00% | |||
| XYZ | B | 2 | 07/01/2021 | Facebook Ads | TRUE | 0.00% | 0.00% | 100.00% | 4.76% | 50.00% | 1.05% | 50.00% | 0.00% | 100.00% | 5.56% | 50.00% | 1.25% | 50.00% | ||
| XYZ | A | 3 | 07/01/2021 | 0.00% | 0.00% | 0.00% | 4.76% | 0.00% | 1.05% | 0.00% | 0.00% | 0.00% | 5.56% | 0.00% | 1.25% | 0.00% | ||||
| XYZ | A | 4 | 07/01/2021 | 0.00% | 0.00% | 0.00% | 4.76% | 0.00% | 1.05% | 0.00% | 0.00% | 0.00% | 5.56% | 0.00% | 1.25% | 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Touchpoint Channel | first_touchpoint_credit | last_touchpoint_to_order_credit | last_touchpoint_to_lead_credit | linear_attribution_to_order_credit | linear_attribution_to_lead_credit | position_based_to_order_credit | position_based_to_lead_credit | last_touchpoint_to_order_non_dir_credit | last_touchpoint_to_lead_non_dir_credit | linear_attribution_to_order_non_dir_credit | linear_attribution_to_lead_non_dir_credit | position_based_to_order_non_dir_credit | position_based_to_lead_non_dir_credit | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Direct | 0.00% | 0.00% | 0.00% | 14.29% | 0.00% | 3.16% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | |
| 0.00% | 0.00% | 0.00% | 71.43% | 0.00% | 15.79% | 0.00% | 0.00% | 0.00% | 83.33% | 0.00% | 18.75% | 0.00% | ||
| Facebook Ads | 0.00% | 0.00% | 100.00% | 4.76% | 50.00% | 1.05% | 50.00% | 0.00% | 100.00% | 5.56% | 50.00% | 1.25% | 50.00% | |
| Generic Paid Search | 100.00% | 0.00% | 0.00% | 4.76% | 50.00% | 40.00% | 50.00% | 0.00% | 0.00% | 5.56% | 50.00% | 40.00% | 50.00% | |
| Organic Search | 0.00% | 100.00% | 0.00% | 4.76% | 0.00% | 40.00% | 0.00% | 100.00% | 0.00% | 5.56% | 0.00% | 40.00% | 0.00% |
OlderNewer