예제 #1
0
def _adjust_bids():
    client = AdWords(workdir='./tests/generated_files')

    for keyword in _get_keywords_report(client):
        entry = {
            'object_type': 'keyword',
            'cpc_bid': 4.20,
            'client_id': keyword['ExternalCustomerId'],
            'campaign_id': keyword['CampaignId'],
            'adgroup_id': keyword['AdGroupId'],
            'criteria_id': keyword['Id'],
            'operator': 'SET',
        }
        client.insert(entry)

    for adgroup in _get_adgroups_report(client):
        entry = {
            'object_type': 'adgroup',
            'cpc_bid': 4.20,
            'client_id': adgroup['ExternalCustomerId'],
            'campaign_id': adgroup['CampaignId'],
            'adgroup_id': adgroup['AdGroupId'],
            'operator': 'SET',
        }
        client.insert(entry)

    operations_folder = client.split()
    client.execute_operations(operations_folder)
    return client.wait_jobs(operations_folder)
예제 #2
0
def _create_campaign():
    client = AdWords(workdir='./tests/generated_files')
    client.insert(
        {
            'object_type': 'campaign',
            'client_id': 7857288943,
            'campaign_id': -1,
            'budget': 1000,
            'campaign_name': 'API test campaign',
            'locations': [1001773, 1001768],  # Sao Paulo, Sao Caetano
            'languages': [1014, 1000],  # Portuguese, English
            'status': 'PAUSED',
        }
    )
    client.insert(
        {
            'object_type': 'adgroup',
            'client_id': 7857288943,
            'campaign_id': -1,
            'adgroup_id': -2,
            'adgroup_name': 'API test adgroup',
            'cpc_bid': 13.37,
        }
    )
    client.insert(
        {
            'object_type': 'keyword',
            'client_id': 7857288943,
            'campaign_id': -1,
            'adgroup_id': -2,
            'text': 'my search term',
            'keyword_match_type': 'broad',
            'status': 'PAUSED',
            'cpc_bid': 13.37,
        }
    )
    client.insert(
        {
            'object_type': 'ad',
            'client_id': 7857288943,
            'campaign_id': -1,
            'adgroup_id': -2,
            'headline_part_1': 'Ad test',
            'headline_part_2': 'my pretty test',
            'description': 'This is my test ad',
            'path_1': 'test',
            'path_2': 'ad',
            'final_urls': 'http://www.mytest.com/',
            'final_mobile_urls': 'http://m.mytest.com/',
        }
    )
    operations_folder = client.split()
    client.execute_operations(operations_folder)
    return client.wait_jobs(operations_folder)
예제 #3
0
def _delete_campaigns():
    client = AdWords(workdir='./tests/generated_files')
    new_report_df = reports.get_campaigns_report(client, 7857288943, 'CampaignStatus != "REMOVED"', fields=True)
    for campaign in new_report_df:
        entry = {
            'object_type': 'campaign',
            'client_id': 7857288943,
            'campaign_id': campaign['CampaignId'],
            'campaign_name': 'API test campaign',
            'operator': 'SET',
            'status': 'REMOVED',
        }
        client.insert(entry)
    operations_folder = client.split()
    client.execute_operations(operations_folder)
    return client.wait_jobs(operations_folder)
예제 #4
0
def _sync_operations():
    client = AdWords()

    get_internal_operation = {
        'object_type':
        'shared_set',
        'client_id':
        7857288943,
        'fields': ['Name', 'SharedSetId', 'Type', 'Status'],
        'predicates': [
            ('Name', 'EQUALS', 'API Sync Test'),
            ('Status', 'EQUALS', 'ENABLED'),
        ]
    }
    shared_sets = client.get_entities(get_internal_operation)
    for shared_set in shared_sets:
        client.insert({
            'object_type': 'shared_set',
            'client_id': 7857288943,
            'shared_set_id': shared_set['sharedSetId'],
            'operator': 'REMOVE'
        })

    client.execute_operations(sync=True)

    client.insert({
        'object_type': 'shared_set',
        'client_id': 7857288943,
        'shared_set_name': 'API Sync Test',
        'shared_set_type': 'NEGATIVE_KEYWORDS',
    })

    client.execute_operations(sync=True)

    shared_sets = client.get_entities(get_internal_operation)

    for shared_set in shared_sets:
        client.insert({
            'object_type': 'shared_set',
            'client_id': 7857288943,
            'shared_set_id': shared_set['sharedSetId'],
            'operator': 'REMOVE'
        })

    client.execute_operations(sync=True)