Esempio n. 1
0
def report_set_performance(set, days=7):
    '''
    Returns keywords performance report of given set for specified days count
    as a dictionary with keywords as keys and their perf values as the values
    of that dict.
    
    Some values may appear as None in case the value cannot be
    calculated yet.
    
    @param set: str
    @param days: int
    
    @return: dict
    '''
    adgroups = session.query(AdGroup).filter(AdGroup.set == set)
    
    if days < 1:
        raise ValueError('Days cannot be %d' % days)
    if adgroups.count() == 0:
        raise ValueError('Set "%s" not found' % set)
    
    campaign = adgroups.first().campaign
    processor = RequestProcessor(campaign.account.email, campaign.account.password)
    processor.sign_in()
    
    keywords = {}
    for adgroup in adgroups.all():
        keywords.update(processor.get_keywords_report(campaign.id, adgroup.id, days))
    
    processor.sign_out()
    
    return keywords
#-------------------------------------------------------------------------------